如何在 WPF 中创建自定义形状的按钮?

How to create custom shaped Buttons in WPF?

(在这被标记为重复之前,我想说我已经尝试过其他帖子的答案,但它们似乎不适用于我的特定问题。)

我正在创建一种 "map game",其中有一张地图被分成多个区域。目前,这是我拥有的:

它可以工作,但不是很漂亮。我想让按钮(目前它们是 Rectangle 控件,但我可以轻松更改)形状正确。

我尝试在 Inkscape 中创建一个路径,它给了我这个 SVG 路径:

m 283.60033,267.22114 11.61675,32.57742 14.14214,-8.33376 10.35406,-1.01015 11.61676,-5.3033 10.6066,-5.05077 0,-16.66751 -34.85027,-3.78808 -8.08122,2.77792 -14.64721,0.75762 z

但是,当我尝试让按钮(以及后来的多边形)使用该路径时,它不起作用,而是制作了一个完全不同的形状。

按钮需要有一个可以在运行时改变的背景颜色,所以 PictureBox 将不起作用。

路径不起作用是否有原因?或者也许有更简单的方法?

编辑:这是我用于多边形的代码

<Polygon Fill="Blue" Points="283.60033,267.22114 11.61675,32.57742 14.14214,-8.33376 10.35406,-1.01015 11.61676,-5.3033 10.6066,-5.05077 0,-16.66751 -34.85027,-3.78808 -8.08122,2.77792 -14.64721,0.75762" Margin="248,102,956,22" RenderTransformOrigin="0.5,0.5" Grid.ColumnSpan="2"/>

这是结果,它与我尝试更改按钮形状时得到的形状相同(不幸的是我删除了它的代码):

它应该是这样的(在 Inkscape 中绘制的路径):

您确定您没有搞错 xaml inkscape 制作的哪个部分吗?

因为那大致是伊比利亚半岛的右上角。就像你绘制的地图。反正差不多。那只是一个多边形——有硬边。这意味着无论您如何制作它,您都没有追踪您向我们展示的内容的 curvy/rough 边缘。

还有。 如果您查看其中的数据。 看到它从哪里开始了吗?

 m 283.60033,267.22114

这些是 x,y 坐标。

向左 268px,向下 267px

从您放入的任何容器的左上角。 这对你有用吗?

我想通了,其实很简单!我实际上根本不需要 Inkscape。

我将地图图像导入到 Blend 中,然后用钢笔工具描绘该区域并将其制成路径,然后将其复制回 Visual Studio。

示例: