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

C# 如何在WPF中创建自定义形状的按钮?,c#,wpf,inkscape,C#,Wpf,Inkscape,(在这被标记为重复之前,我想说我已经在其他帖子上尝试过这些答案,但它们似乎对我的特定问题不起作用。) 我正在创建一种“地图游戏”,其中有一个地图分成多个区域。目前,我所拥有的是: 它能工作,但不漂亮。我想使按钮(目前它们是矩形控件,但我可以很容易地更改)成为正确的形状 我尝试在Inkscape中创建一条路径,它为我提供了以下SVG路径: m 283.60033,267.22114 11.61675,32.57742 14.14214,-8.33376 10.35406,-1.01015 11.

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

我正在创建一种“地图游戏”,其中有一个地图分成多个区域。目前,我所拥有的是:

它能工作,但不漂亮。我想使按钮(目前它们是矩形控件,但我可以很容易地更改)成为正确的形状

我尝试在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生产的部件混淆吗

因为那大概是伊比利亚半岛的右上角。喜欢你画的地图。大体上是这样。那只是一个多边形,有硬边。也就是说,无论你如何制作,你都没有追踪到你展示给我们的东西的弯曲/粗糙边缘

还有。 如果你看看里面的数据。 看看从哪里开始

 m 283.60033,267.22114
这些是x,y坐标

268px向左,267px向下

从你放进去的容器的左上角开始。
这对你有用吗?

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

我将地图图像导入到Blend中,然后用画笔工具跟踪该区域并将其生成路径,然后将其复制回VisualStudio

例如:


请提供用于定义矩形/多边形的代码(不仅仅是路径)?@SharpNip当然!我编辑了这篇文章。为了增加一些上下文;即使我将Inkscape中的页面大小调整为路径大小,也可能会进行浏览,但它仍然以更大的数字开始:
m 353.69716262.60424