WPF如何修改三方控件库的样式

这里以lepoco的wpf-ui为例

nuget上的包基本是开源的,但是除非是离线环境,否则不建议将包源码直接放到工程里。

下面的修改示例是针对直接使用nuget包的。

方法一、通过定义相同资源覆盖原始资源

例如修改ListBox选中项的背景颜色

首先我们在界面上添加一个ListBox,并添加几项

1   
2       22222
3       33333
4       44444
5   

运行效果如下

WPF如何修改三方控件库的样式_第1张图片

如果我们想修改选中的颜色,最简单的方案就是创建一个跟控件库中一样名字的SolidColorBrush资源即可。

我们打开wpf-ui包的源码,搜索ListBoxItem.xaml,然后找到这个资源名称,创建一个一样的即可。

WPF如何修改三方控件库的样式_第2张图片

 1  
 2      
 3          
 4              
 5              
 6              
 7              
 8              
 9              
10                  
11              
12          
13      
14  

运行效果

WPF如何修改三方控件库的样式_第3张图片

方法二、动态修改控件模板

例如我们要修改Button的圆角。

首先我们在界面上放置一个Button

1   

然后我们想修改Button为圆角,

只需要找到Button.xaml,然后找到Button的控件模板,找到设置圆角的Border元素,并复制名称

WPF如何修改三方控件库的样式_第4张图片

然后通过代码修改CornerRadius

1   private void btn_Click(object sender, RoutedEventArgs e)
2   {
3       var borderObj = btn.Template.FindName("ContentBorder", btn);
4 
5       if(borderObj != null && borderObj is Border border)
6       {
7           border.CornerRadius = new CornerRadius(10);
8       }
9   }

运行效果如下:

WPF如何修改三方控件库的样式_第5张图片

方法三、通过继承样式,并设置控件模板

例如,当鼠标划过一个Button时,背景颜色通过动画变成Pink

我们找到Button.xaml,找到Button的样式名称

WPF如何修改三方控件库的样式_第6张图片

 然后我们新建一个样式,继承自DefaultButtonStyle,再修改控件模板即可,这样我们能继承大部分的样式效果

 1       

运行效果如下:

WPF如何修改三方控件库的样式_第7张图片

示例代码

下载

你可能感兴趣的:(WPF,wpf)