对于我来说,编写类似下面的内容来设置数据输入表单的样式并不少见,但我的问题是,似乎TextBox
并TextBlock
没有实现BaseElementStyle
. 通常我需要单独定义它们。
为什么是这样?有没有办法解决它?
我猜这与它们通常用于其他控件模板的事实有关(例如 TextBlock 用于大多数控件,TextBox 用于 DatePickers 和 ComboBoxes)
<Style x:Key="BaseElementStyle" TargetType="{x:Type FrameworkElement}">
<Setter Property="Margin" Value="5" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource BaseElementStyle}" />
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource BaseElementStyle}" />
<Style TargetType="{x:Type Label}" BasedOn="{StaticResource BaseElementStyle}" />
<Style TargetType="{x:Type ComboBox}" BasedOn="{StaticResource BaseElementStyle}" />
<Style TargetType="{x:Type DatePicker}" BasedOn="{StaticResource BaseElementStyle}" />
<Style TargetType="{x:Type CheckBox}" BasedOn="{StaticResource BaseElementStyle}" />