我只是想知道我是否可以在WPF中制作几个按钮模板然后通过“声明”按钮模板名称(或您建议的其他方法)将特定按钮分配给要使用的模板
我想要创建的按钮模板是:
我将生成的按钮样式取决于我将“调用”的按钮模板 其中:
如果selection = 1,将使用模板1。 (这将在C#中完成)
答案 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}"/>