wpf-动态设置组件【按钮为例】样式
2023-12-29 14:27:29
坚持记录实属不易,希望友善多金的码友能够随手点一个赞。
共同创建氛围更加良好的开发者社区!
谢谢~
解决方案
创建一个Converter,返回对应的style实现对应的修改
创建多个样式
将创建的样式与Converter的属性绑定
利用Binding 将vm中的属性作为Converter的传参实现动态样式功能
具体实现
Converter 部分
创建一个Converter根据传参,返回相应的样式
public class ConditionToStyleConverter : IValueConverter
{
public Style CurrentStyle { get; set; }
public Style OptionalStyle { get; set; }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return (bool)value ? CurrentStyle : OptionalStyle ;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return new InvalidOperationException();
}
}
}
创建样式
<Grid.Resources>
<Style x:Key = "FirstStyle" TargetType="{x:Type Button}" BasedOn = "{StaticResource OptionalStyle}"/>
<Style x:Key = "FirstStyle" TargetType="{x:Type Button}" BasedOn = "{StaticResource CurrentStyle}"/>
<local:ConditionToStyleConverter
x:Key = "ConditionToStyleConverter"
CurrentStyle = "{StaticResource CurrentStyle}"
OptionalStyle = "{StaticResource OptionalStyle}"/>
</Grid.Resources>
Binding样式
<Button Style="{Binding IsSucceed}",Converter = {StaticResource ConditionToStyleConverter}"/>
文章来源:https://blog.csdn.net/qq_43733614/article/details/135287688
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!