繁体   English   中英

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

[英]How to create custom shaped Buttons in WPF?

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

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

它可以工作,但不是很漂亮。 我想使按钮(当前是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 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的形状时得到的形状相同(不幸的是,我删除了该代码):

在此处输入图片说明

这是它的外观(在Inkscape中绘制的路径):

在此处输入图片说明

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

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

例:

在此处输入图片说明

您确定您没有与挑选出产生的xaml inkscape的哪个部分混淆吗?

因为那大约是伊比利亚半岛的右上角。 就像您绘制的地图一样。 大致来说。 那只是一个多边形-具有坚硬的边缘。 意味着无论您制作了什么,您都没有看到展示给我们的东西的弯曲/粗糙的边缘。

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

 m 283.60033,267.22114

这些是x,y坐标。

左侧268px,向下267px

从您放入的任何容器的左上角开始,这样对您有用吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM