我在工具栏中有两个按钮,如果按钮 isEnabled=false,我希望更改按钮的不透明度
我在窗口的资源中定义了样式和触发器:
<Window.Resources>
<Style x:Key="buttonOpacity" TargetType="Button">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.3" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
这里应该应用样式:
<ToolBar>
<Button Click="FirstClick"
IsEnabled="False">
<Image Height="24" Source="Ressources/First.png"/>
</Button>
<Button Click="SecondClick"
IsEnabled="False"
Style="{StaticResource buttonOpacity}">
<Image Height="24" Source="Ressources/Second.png"/>
</Button>
</ToolBar>
我注意到,第一个 Button 没有应用样式,因此不会改变不透明度。而第二个按钮应用我给它的样式。那么,为什么我的第一个按钮找不到资源?TargetType 已设置...搜索向上逻辑树...
后来,我用 DataGridTemplateColumn 中的 Button 尝试了类似的操作:
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Click="thridButton"
IsEnabled="false"/>
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
在 thridButton 上,即使手动设置样式也无济于事。我几乎迷路了......谁能看到我的错误?
顺便说一句:IsEnabled 标志是通过数据绑定和转换器设置的。由于样式在手动设置样式时有效,我认为问题不存在......