WPF内联样式未设置模板值

3

我有一些基本的按钮样式需要继承并进行一些微小的更改,但不是在主要样式中进行更改。 我将主要问题提取到了一个新的应用程序中,其中包含最少量的xaml代码。 唯一想要实现的是当按钮被禁用时更改按钮的高度。

我尝试了两个触发器,但似乎都没有起作用,也没有任何关于无法找到其绑定内容的调试信息。

<Button HorizontalAlignment="Center"
    Height="90"
    Margin="5"
    Click="Button_Click"
    VerticalAlignment="Bottom">
    <Button.Style>
        <Style TargetType="Button">
            <Style.Triggers>
                <Trigger Property="Button.IsEnabled"
                         Value="False">
                    <Setter Property="Button.Height"
                            Value="50" />
                </Trigger>
                <DataTrigger Binding="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}}"
                             Value="False">
                    <Setter Property="Button.Height"
                            Value="50" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
    Foo Bar
</Button>

按钮点击
private void Button_Click(object sender, RoutedEventArgs e)
{
    (sender as FrameworkElement).IsEnabled = false;
}

感谢您的阅读。
谢谢。
1个回答

3

两个触发器都起作用。你明确地设置了 Height="90",它会覆盖你的样式!如果想要生效,你应该在样式中设置初始高度,并从按钮标签中删除它。

<Style TargetType="Button">
    <Setter Property="Button.Height" Value="90" />
    <Style.Triggers>
        <Trigger Property="Button.IsEnabled"
                 Value="False">
            <Setter Property="Button.Height"
                    Value="50" />
        </Trigger>
    </Style.Triggers>
</Style>

我知道这是某些简单而荒谬的东西,谢谢。 - Gauthier

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