0

StackPanels私のアプリケーションには、子供たちに特定のスタイルを適用させたいものがいくつかあります。

<StackPanel.Resources>
    <Style TargetType="TextBlock" BasedOn="{StaticResource SettingLabel}" />
    <Style TargetType="DockPanel" BasedOn="{StaticResource SettingRow}" />
    <Style TargetType="CheckBox" BasedOn="{StaticResource SettingCheckBox}" />
    <Style TargetType="PasswordBox" BasedOn="{StaticResource DialogPasswordBox}" />
    <Style TargetType="TextBox" BasedOn="{StaticResource DialogTextBox}" />
</StackPanel.Resources>

これらの 5 行を何度も書く代わりに、StackPanelそれらを適用して冗長性を減らすスタイルをそれ自体に与えることを考えました。

Resources依存関係プロパティではないため、スタイル セッターで設定することはできません。

<Style x:Key="SettingPanel" TargetType="StackPanel">
    <Setter Property="Resources">
        <Setter.Value>
            <Style TargetType="TextBlock" BasedOn="{StaticResource SettingLabel}" />
            <Style TargetType="DockPanel" BasedOn="{StaticResource SettingRow}" />
            <Style TargetType="CheckBox" BasedOn="{StaticResource SettingCheckBox}" />
            <Style TargetType="PasswordBox" BasedOn="{StaticResource DialogPasswordBox}" />
            <Style TargetType="TextBox" BasedOn="{StaticResource DialogTextBox}" />
        </Setter.Value>
    </Setter>
</Style>

すべての子供にスタイルを設定し、割り当てスタイルを繰り返すことなく、これを行う他の方法はありますか?

4

1 に答える 1