C# 自定义控件及其在generic.xaml中的附加样式
我已经为它创建了自定义控件和默认样式 我的XAML很简单:C# 自定义控件及其在generic.xaml中的附加样式,c#,wpf,xaml,C#,Wpf,Xaml,我已经为它创建了自定义控件和默认样式 我的XAML很简单: <Style TargetType="{x:Type local:MyControl}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <Border CornerRadius="10" BorderThickness="1"
<Style TargetType="{x:Type local:MyControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border CornerRadius="10" BorderThickness="1" Background="Transparent" BorderBrush="Black"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
它是有效的。但现在我想为我的控件创建其他样式。这是因为我的控件可以将某些模式定义为枚举,例如:
public enum ControlMode
{
Mode1,
Mode2
}
现在,当我的控件处于模式1时,我希望它具有默认样式。但当它处于Mode2时,我希望它具有另一种样式,例如:
<Style TargetType="{x:Type local:MyControl}" x:Key"styleForMode2>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border BorderThickness="1" Background="White" BorderBrush="Black"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
假设控件具有模式
属性,默认样式可以声明触发器以为不同模式设置不同的控件模板:
<Style TargetType="local:MyControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border CornerRadius="10" BorderThickness="1"
Background="Transparent" BorderBrush="Black"/>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Mode" Value="Mode2">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border BorderThickness="1" Background="White"
BorderBrush="Black"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
假设控件具有模式
属性,默认样式可以声明触发器以为不同模式设置不同的控件模板:
<Style TargetType="local:MyControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border CornerRadius="10" BorderThickness="1"
Background="Transparent" BorderBrush="Black"/>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Mode" Value="Mode2">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border BorderThickness="1" Background="White"
BorderBrush="Black"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>