我的WPF用户控件包含两个堆栈面板,每个面板都包含标签、文本框和单选按钮。
我想尽可能少地使用代码将
目前我有以下解决方案:
还有其他方法可以编写吗?
我希望为
这是我当前XAML的片段(我省略了第二个非常相似的堆栈面板):
我想尽可能少地使用代码将
VerticalAlignment
属性设置为Center
到我的用户控件中的所有控件中。目前我有以下解决方案:
- 蛮力法——在每个控件中放置
VerticalAlignment="Center"
- 为
FrameworkElement
定义一个样式并直接应用它 - 为用户控件上每种类型的控件定义样式(这需要3个样式定义,但会自动将样式应用于控件)
还有其他方法可以编写吗?
我希望为
FrameworkElement
定义样式会自动将属性设置到所有控件上,但实际情况并非如此。这是我当前XAML的片段(我省略了第二个非常相似的堆栈面板):
<UserControl.Resources>
<Style x:Key="BaseStyle" TargetType="FrameworkElement">
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</UserControl.Resources>
<Grid>
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource BaseStyle}" Text="Value:" />
<RadioButton Style="{StaticResource BaseStyle}">Standard</RadioButton>
<RadioButton Style="{StaticResource BaseStyle}">Other</RadioButton>
<TextBox Style="{StaticResource BaseStyle}" Width="40"/>
</StackPanel>
</Grid>
编辑:
关于Will的评论:我真的很讨厌在代码后端编写控件格式代码。对于这个非常简单的用户控件,XAML应该足够了。
关于Muad'Dib的评论:我在我的用户控件中使用的控件都派生自FrameworkElement
,所以这不是一个问题。