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

问题描述 投票:0回答:2

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

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

它有效,但它并不漂亮。我想制作按钮(目前它们是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

但是,当我尝试制作一个Button(以及后来的Polygon)使用该路径时,它不起作用,而是形成一个完全不同的形状。

按钮需要具有可在运行时更改的背景颜色,因此PictureBox将无法工作。

路径不起作用的原因是什么?或者可能有一个更简单的方法?

编辑:这是我用于Polygon的代码

<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"/>

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

enter image description here

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

enter image description here

c# wpf inkscape
2个回答
1
投票

我想通了,实际上很容易!实际上我根本不需要Inkscape。

我将地图图像导入到Blend中,然后使用钢笔工具跟踪该区域并将其转换为路径,然后将其复制回Visual Studio。

例:

enter image description here


0
投票

你确定你没有弄清楚你挑选出的xaml inkscape产生的部分吗?

因为这大致是伊比利亚半岛的右上角。就像你绘制的地图一样大概无论如何。那只是一个多边形 - 边缘硬。无论你生产它的意义,你都没有追踪你向我们展示的曲线/粗糙边缘。

也。如果你查看其中的数据。看看它从哪里开始?

 m 283.60033,267.22114

那些是x,y坐标。

268px离开,267px下跌

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

© www.soinside.com 2019 - 2024. All rights reserved.