如何向按钮添加样式和模板?

问题描述

如何为按钮添加样式和模板?

我有一个带有 DataTrigger 的样式,它将按钮的背景颜色设置为灰色(如果禁用)或蓝色(如果启用)。

我还有一个 ControlTemplate,它设置 CornerRadius 以赋予它一些圆角。

这两个中的每一个都单独工作。但是当我将它们都添加到 Button 时,ControlTemplate 优先,带有 DataTrigger 的 Style 丢失了。我最终看到一个没有边框和背景的按钮。

我怎样才能同时完成这两项任务?

<Button Grid.Row="4" Command="{Binding SubmitCommand}"
        IsEnabled="{Binding IsSubmitButtonEnabled.Value}"
        HorizontalAlignment="Stretch" VerticalAlignment="Center" FontSize="18px" Height="36">

    <Button.Style>
        <Style targettype="{x:Type Button}">
            <Setter Property="Background" Value="Gray" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsSubmitButtonEnabled.Value}" Value="True">
                    <Setter Property="Background" Value="Blue" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>

    <Button.Template>
        <ControlTemplate>
            <Border CornerRadius="20">
                <TextBlock Text="Submit"
                           HorizontalAlignment="Center"
                           VerticalAlignment="Center"
                           TextAlignment="Center"
                           FontSize="16">
                </TextBlock>
            </Border>
        </ControlTemplate>
    </Button.Template>

</Button>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...