wpf - 将 WPF 按钮图像“灰显”?

标签 wpf wpf-controls

我有一个简单的 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/

相关文章:

wpf - 阻止从其他线程启动WPF对话框

WPF - 网格 - 每次删除新行/列时更新子控件上的行和列号附加属性

c# - 将 WPF UserControl 另存为矢量图像

c# - WPF - 视觉树不用于绘图?

wpf - 将 ObservableCollection 绑定(bind)到 WPF ListBox

wpf - 在 ScrollViewer 中平移 Canvas 的内容

C# WPF 游戏键盘移动

c# - 左侧的 WPF 选项卡控件标题

wpf - 我什么时候应该使用装饰器?

自定义控件上的 WPF PropertyPath