我怎样才能拥有具有其他 TextBox 样式属性的 TextBox 样式
How can I have a TextBox style with properties of other TextBox style
我制作了一个 TextBox 样式,但现在我需要一些不同之处,例如另一个圆角半径。
这是我的默认样式:
<Style TargetType="TextBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBoxBase}">
<Border
CornerRadius="10"
Padding="2"
Background="{DynamicResource DefaultItemBGBrush}"
BorderBrush="#C2C2C2"
BorderThickness="1" >
<ScrollViewer Margin="0" x:Name="PART_ContentHost" FontWeight="Bold" Foreground="#8D8D8D"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
现在我想要一些具有相同属性的文本框,例如 CornerRadius="10,10,0,0" 和一个 CornerRadius="0,0,10,10" 等等。
是否可以使用特殊的 CornerRadius 创建新样式并从我的默认 TextBox 中获取其他属性?我不想制作 10 种风格,就像我的默认风格一样,只有另一个角半径。
您可以创建一个 CustomControl(它继承自 TextBox),您可以在其中创建一个名为 CornerRadius 的 DependencyProperty,然后在您的样式中,可以访问依赖项 属性。有关教程,请参阅 here。
public System.Windows.CornerRadius CornerRadius
{
get { return (System.Windows.CornerRadius)GetValue(CornerRadiusProperty); }
set { SetValue(CornerRadiusProperty, value); }
}
// Using a DependencyProperty as the backing store for CornerRadius. This enables animation, styling, binding, etc...
public static readonly DependencyProperty CornerRadiusProperty =
DependencyProperty.Register("CornerRadius", typeof(System.Windows.CornerRadius), typeof(YourControlClass), new PropertyMetadata(10));
我制作了一个 TextBox 样式,但现在我需要一些不同之处,例如另一个圆角半径。
这是我的默认样式:
<Style TargetType="TextBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBoxBase}">
<Border
CornerRadius="10"
Padding="2"
Background="{DynamicResource DefaultItemBGBrush}"
BorderBrush="#C2C2C2"
BorderThickness="1" >
<ScrollViewer Margin="0" x:Name="PART_ContentHost" FontWeight="Bold" Foreground="#8D8D8D"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
现在我想要一些具有相同属性的文本框,例如 CornerRadius="10,10,0,0" 和一个 CornerRadius="0,0,10,10" 等等。
是否可以使用特殊的 CornerRadius 创建新样式并从我的默认 TextBox 中获取其他属性?我不想制作 10 种风格,就像我的默认风格一样,只有另一个角半径。
您可以创建一个 CustomControl(它继承自 TextBox),您可以在其中创建一个名为 CornerRadius 的 DependencyProperty,然后在您的样式中,可以访问依赖项 属性。有关教程,请参阅 here。
public System.Windows.CornerRadius CornerRadius
{
get { return (System.Windows.CornerRadius)GetValue(CornerRadiusProperty); }
set { SetValue(CornerRadiusProperty, value); }
}
// Using a DependencyProperty as the backing store for CornerRadius. This enables animation, styling, binding, etc...
public static readonly DependencyProperty CornerRadiusProperty =
DependencyProperty.Register("CornerRadius", typeof(System.Windows.CornerRadius), typeof(YourControlClass), new PropertyMetadata(10));