Я нередко пишу что-то вроде ниже для стилизации формы ввода данных, но моя проблема в том, что 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}" />