项目中要生成如下图所示的不规则的按钮,并且按钮上还需要字体。

参考博客: https://blog.youkuaiyun.com/cmis7645/article/details/7592372
发现可以根据图片的path来生成。
步骤如下:
1.UI设计出SVG图片(可转成path,支持缩放);
2.利用github上开源项目将svg图片转成path。
下载开源项目,地址:https://github.com/BerndK/SvgToXaml
运行项目,打开svg文件所在目录


点击红色 部分可看到生成的xaml代码,绿色部分对应path参数
3.将geometry对应成path的Data,并且填充颜色;然后每个path中有个mousedown事件,可以在事件函数中添加业务代码和改变单个path的背景颜色。
<Viewbox Grid.Column="0" Grid.Row="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="20,0,20,20">
<Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Path x:Name="YpBlock" Data="F1 M139.6,177.6z M0,0z M84.54,127.17A1.09,1.09,0,0,0,83.14,127.05A23.42,23.42,0,0,1,56.46,127.05A1.09,1.09,0,0,0,55.06,127.17L23.62,158.6A1.09,1.09,0,0,0,23.62,160.18A69.82,69.82,0,0,0,115.9,160.18A1.09,1.09,0,0,0,115.9,158.6z" PreviewMouseDown="Yp_PreviewMouseDown" PreviewMouseUp="Yp_PreviewMouseUp" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MouseLeave="YpBlock_MouseLeave">
<Path.Fill>
<SolidColorBrush Color="#35A3DD"></SolidColorBrush>
</Path.Fill>
</Path >
<Path x:Name="XmBlock" Data="F1 M139.6,177.6z M0,0z M50.55,121.14A23.42,23.42,0,0,1,50.55,94.46A1.09,1.09,0,0,0,50.44,93.06L19,61.62A1.11,1.11,0,0,0,17.41,61.62A69.82,69.82,0,0,0,17.41,153.9A1.11,1.11,0,0,0,19,154L50.43,122.56A1.09,1.09,0,0,0,50.55,121.14z" PreviewMouseDown="Xm_PreviewMouseDown" PreviewMouseUp="Xm_PreviewMouseUp" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MouseLeave="XmBlock_MouseLeave"