“灰色”的WPFbutton图像?
我有一个简单的Button控件,它包含一个Image对象作为其内容。 我想这样设置的Image不透明度为0.5时, Button被禁用,以提供一个额外的视觉提示作为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> 
请注意,我们正在利用这个事实,即禁用button时图像将被禁用,因此我们可以直接在图像自身的IsEnabled属性上进行触发。 在其他情况下,我们要触发的Button属性可能不会被Imageinheritance; 在这种情况下,我们需要使用带有FindAncestor RelativeSource的DataTrigger绑定到包含button。
如果你想要更通用的东西,把它放在你的窗口或UserControl的资源部分。
 <UserControl.Resources> <Style x:Key="ImageEnabled" TargetType="Image"> <Style.Triggers> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Opacity" Value="0.25"></Setter> </Trigger> </Style.Triggers> </Style> </UserControl.Resources> 
而在实际的button只是做到这一点
 <Button> <Image Source="{StaticResource LinkImage}" Style="{StaticResource ImageEnabled}"/> </Button> 
这是一个更通用的风格,你可以申请:
 <Style TargetType="Button"> <Style.Resources> <Style TargetType="Image"> <Style.Triggers> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Opacity" Value="0.5" /> </Trigger> </Style.Triggers> </Style> </Style.Resources> </Style>