根据图片path生成不规则的按钮

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

根据图片path生成不规则的按钮_第1张图片 需要做成的按钮

参考博客: https://blog.csdn.net/cmis7645/article/details/7592372   

发现可以根据图片的path来生成。

步骤如下:

1.UI设计出SVG图片(可转成path,支持缩放);

2.利用github上开源项目将svg图片转成path。

下载开源项目,地址:https://github.com/BerndK/SvgToXaml    

运行项目,打开svg文件所在目录

根据图片path生成不规则的按钮_第2张图片 图中红色部分是需要转换的svg图片
根据图片path生成不规则的按钮_第3张图片 生成的path

点击红色 部分可看到生成的xaml代码,绿色部分对应path参数

3.将geometry对应成path的Data,并且填充颜色;然后每个path中有个mousedown事件,可以在事件函数中添加业务代码和改变单个path的背景颜色。


            
                
                    
                        
                    
                
                
                    
                        
                    
                

                
                    
                        
                    
                
                
                    
                        
                    
                
                
                    
                        
                    
                
                
                    
                        
                    
                

                
                    
                        
                    
                
                
                    
                        
                    
                
                
                
                    
                        
                    
                
                
                    
                        
                    
                

                
                    
                        
                    
                
                
                    
                        
                    
                

                
                    
                        
                    
                
                
                    
                        
                    
                

                
                    
                        
                    
                
                
                    
                        
                    
                

                
                    
                        
                    
                
                
                    
                        
                    
                
            
        
根据图片path生成不规则的按钮_第4张图片 mousedown和mouseup事件

在此过程中有几个问题:1.就是如果我不用   系统的颜色(下图所示

根据图片path生成不规则的按钮_第5张图片 系统颜色设置

)填充path的背景色(即rgb转换),path的背景色不会改变;然后我就想到一个办法:在xaml中先用16进制的颜色填充一个path,然后再在后台代码替换。这样就可以得到需要的背景颜色。


                    
                        
                    
                
            _originBrush = this.ZmBlock.Fill;
            _pressedBrush = PressedBrush;
            this.ZpBlock2.Fill = Brushes.White;

2.此过程生成的控件不支持缩放功能,然后我又将grid替换为viewbox。

 

如有错误,请指出,谢谢(svg图片放在评论中)

 

你可能感兴趣的:(.NET,-----,WPF,控件样式)