我有一个使用Silverlight的用户界面,它包含一些边框和一个放置在边框内的文本块。其他文本块则在边框外。
<Border>
<TextBlock>This text should be centered</TextBlock>
</Border>
<Border>
<TextBlock>This one too</TextBlock>
</Border>
<TextBlock>this one shouldn't</TextBlock>
我想要实现的是在边框内部格式化所有的TextBlock,而不必在每个TextBlock中设置样式。如果使用CSS,类似于以下内容:
.border .textBlock { (...) }
我知道可以在边框的范围内设置样式:<Border>
<Border.Resources>
<Style TargetType="TextBlock" BasedOn="{StaticResource DefaultTextBlockStyle}">
<Setter Property="HorizontalAlignment" Value="Center"></Setter>
</Style>
</Border.Resources>
<TextBlock>Centered Text</TextBlock>
</Border>
但是我仍然需要设置每个边框。现在我提出了一个问题,我能否在样式中设置 <BorderThickness>
,以便一次性设置影响所有边框?我尝试了下面的代码,但它没有起作用。它没有给我任何错误提示,但也没有影响的格式。
<Style TargetType="Border">
<Setter Property="Resources">
<Setter.Value>
<ResourceDictionary>
<Style TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
</ResourceDictionary>
</Setter.Value>
</Setter>
</Style>