私は次のスタイルを持っています。以下に示すように、うまく機能します。
<StackPanel Orientation="Vertical">
<StackPanel.Resources>
<Style TargetType="TextBlock">
<Setter Property="Padding" Value="0 0 0 0.3cm" />
<Setter Property="Height" Value="Auto" />
<Setter Property="VerticalAlignment" Value="Stretch" />
</Style>
</StackPanel.Resources>
<TextBlock Text="Hello"/>
<TextBlock Text="World"/>
</StackPanel>
ここで問題が発生します。私が本当にやりたいことは、このスタイルを 3 番目の場所で定義し、それを上記の作業サンプルの方法で、子を含むさまざまな StackPanels で使用することですが、すべての StackPanels ではありません。これは私が試したものです。ビルドエラーが発生します:
<Window.Resources>
<Style x:Key="TextBlockWithBottomMargin" TargetType="TextBlock">
<Setter Property="Padding" Value="0 0 0 0.3cm" />
<Setter Property="Height" Value="Auto" />
<Setter Property="VerticalAlignment" Value="Stretch" />
</Style>
</Window.Resources>
<Grid>
<TabControl>
<!-- omitting some XAML here -->
<TabItem Header="Help" >
<StackPanel Orientation="Vertical">
<StackPanel.Resources>
<Style Binding="{StaticResource TextBlockWithBottomMargin}"></Style> <!-- build error on this line -->
</StackPanel.Resources>
<TextBlock Text="Hello"/>
<TextBlock Text="World"/>
</StackPanel>
<!-- lots more xaml here -->