[英]WPF Trigger not working
我正在尝试使用triggers
来修改控件的属性。我有一个RadioButton
和Border
,我想在选中RadioButton
时修改Border
Background
。 所以这是我的代码:
<Border BorderBrush="{DynamicResource MaterialDesignDivider}">
<RadioButton IsChecked="{Binding Erase_IsSelected}" Content="E">
<RadioButton.Resources>
<Style TargetType="{x:Type RadioButton}">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" Value="{DynamicResource MaterialDesignSelection}" />
</Trigger>
</Style.Triggers>
</Style>
</RadioButton.Resources>
</RadioButton>
</Border>
这似乎不起作用,应该如何解决? 谢谢!
使用绑定到RadioButton
的IsChecked
属性的Border
Style
:
<Border BorderBrush="{DynamicResource MaterialDesignDivider}">
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=rb}" Value="True">
<Setter Property="Background" Value="{DynamicResource MaterialDesignSelection}" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<RadioButton x:Name="rb" IsChecked="{Binding Erase_IsSelected}" Content="E" />
</Border>
RadioButton
样式不能更改Border
的属性。
在您的xaml中添加OnChecked事件:
<RadioButton Checked="Radiobutton_OnChecked" Content="E">
<RadioButton.Resources>
<Style TargetType="{x:Type RadioButton}">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" Value="{DynamicResource MaterialDesignSelection}" />
</Trigger>
</Style.Triggers>
</Style>
</RadioButton.Resources>
</RadioButton>
这将在.cs中为您创建一个函数,如下所示,您可以在其中更改背景:
private void Radiobutton_OnChecked(object sender, RoutedEventArgs e)
{
RadioButton rdb = (RadioButton) sender;
rdb.Background = new SolidColorBrush(Colors.Green);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.