我有一个简单的 Button
控件,其中包含一个 Image
对象作为其内容。我希望在禁用 Button
时将 Image
不透明度设置为 0.5,以提供有关 Button
状态的附加视觉提示。
在 XAML 中实现该结果的最简单方法是什么?感谢您的帮助。
最佳答案
在图像样式中使用触发器。 (将其放在 Button 样式中会更自然,但由于烦人的技术原因,Button 样式不能轻易影响图像。它可以在 Button 的 ControlTemplate 中完成,但这对于什么来说是过分的你想要这里。)
<Button>
<Image Source="something.png">
<Image.Style>
<Style TargetType="Image">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.5" />
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</Button>
请注意,我们在这里利用了当按钮被禁用时图像将被禁用的事实,因此我们可以直接在图像自己的 IsEnabled 属性上触发。在其他情况下,我们想要触发的 Button 属性可能不会被 Image 继承;在这种情况下,我们需要使用带有 FindAncestorrelativeSource 的 DataTrigger 来绑定(bind)到包含的按钮。
关于wpf - 将 WPF 按钮图像“灰显”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2530912/