【问题标题】:WPF multiline button disablingWPF多行按钮禁用
【发布时间】:2013-10-17 11:50:06
【问题描述】:

我有一个带有多行文本的按钮:

<Button x:Name="Start" IsEnabled="False">
  <TextBlock TextWrapping="Wrap">Some Text</TextBlock>
</Button>

如果IsEnabledFalse,则按钮被禁用,但按钮内的文本仍然是黑色的。

如何将button-text 设置为“禁用样式” - 颜色?

【问题讨论】:

    标签: c# wpf button multiline


    【解决方案1】:

    似乎如果您将 TextBlock 包装在标签中,它将遵循 IsEnabled 样式更改:

    <Button x:Name="Start" IsEnabled="False">
        <Label>
            <Label.Content>
                <TextBlock Text="Some Text" TextWrapping="Wrap"/>
            </Label.Content>
        </Label>
    </Button>
    

    【讨论】:

    • 是的,但是您的按钮上不能有 alt+字母代码。 :(
    【解决方案2】:

    有一个DataTrigger,如果按钮被禁用,改变TextBlock的前景。

    <TextBlock.Style>
    <Style TargetType=TextBlock>
    ...
        <Style.Triggers>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=IsEnabled}" Value="False" >
                <Setter Property="Foreground" Value="..." />
            </DataTrigger>
        </Style.Triggers>
    </Style>
    

    【讨论】:

      猜你喜欢
      • 2017-06-06
      • 1970-01-01
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 2015-04-19
      • 1970-01-01
      • 2014-10-13
      • 1970-01-01
      相关资源
      最近更新 更多