创建几个自定义按钮模板

时间:2010-08-27 02:51:55

标签: c# wpf image templates button

我只是想知道我是否可以在WPF中制作几个按钮模板然后通过“声明”按钮模板名称(或您建议的其他方法)将特定按钮分配给要使用的模板

我想要创建的按钮模板是:

  1. 带有黑色背景,圆角,文字显示的按钮
  2. 带有银色背景,圆角,带文字旁边的文字的按钮
  3. 带金色背景的按钮,文字显示,文字旁边有不同的图像
  4. 我将生成的按钮样式取决于我将“调用”的按钮模板 其中:

    如果selection = 1,将使用模板1。 (这将在C#中完成)

2 个答案:

答案 0 :(得分:4)

实现这一目标的一种方法是使用触发器。为按钮提供一种样式,根据其绑定的属性值选择其模板。

我没有将它放在XAML编辑器中,因此可能存在语法错误,但这是要点:

<Style TargetType="Button">
    <Style.Setters>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <!-- default template -->
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style.Setters>
    <Style.Triggers>
        <DataTrigger Binding="{Binding SomeValue}" Value="1">
            <DataTrigger.Setters>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            <!-- template when SomeValue == 1 -->
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </DataTrigger.Setters>
        </DataTrigger>
        <DataTrigger Binding="{Binding SomeValue}" Value="2">
            <DataTrigger.Setters>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            <!-- template when SomeValue == 2 -->
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </DataTrigger.Setters>
        </DataTrigger>
    </Style.Triggers>
</Style>

答案 1 :(得分:2)

您可以根据需要制作任意数量的按钮(或任何其他控件)模板。你在样式上使用x:key =“”属性来“命名”你的模板,并在退役按钮上设置样式....

<Style x:Name="MyButton1">
....
</Style>

然后按下按钮....

使用动态资源..

<Button Style="{DynamicResource MyButton1}"/> 

或者您可以使用StaticResource

<Button Style="{StaticResource MyButton1}"/> 
相关问题