WPF多行按钮禁用

3

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

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

如果IsEnabled为假,则按钮被禁用,但按钮内的文本仍然是黑色。
我该如何将button-text设置为“禁用样式” - 颜色?
2个回答

6
看起来,如果将您的 TextBlock 包装在一个 Label 中,它将遵循 IsEnabled 样式更改:
<Button x:Name="Start" IsEnabled="False">
    <Label>
        <Label.Content>
            <TextBlock Text="Some Text" TextWrapping="Wrap"/>
        </Label.Content>
    </Label>
</Button>

是的,但这样你就不能在按钮上使用alt+字母代码了。 :( - BrainSlugs83

0
有一个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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接