データ入力フォームをスタイリングするために以下のようなものを書くことは珍しくありませんが、私のTextBox
問題TextBlock
はBaseElementStyle
. 通常、それらを個別に定義する必要があります。
どうしてこれなの?それを回避する方法はありますか?
通常、他のコントロール テンプレートで使用されるという事実に関係していると推測しています (たとえば、TextBlock はほとんどのコントロールで使用され、TextBox は DatePicker と 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}" />