我在应用程序资源中定义了一种样式,我希望所有的文本块都继承它:
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="1" ShadowDepth="0" />
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="White" />
<Setter Property="FontFamily" Value="Arial" />
<Setter Property="FontWeight" Value="Bold" />
</Style>
我不想在每一个文本块上都要经历和明确地指定样式--我只希望它们都能自然地继承这种样式。
不幸的是,当我定义一个工具提示时,该工具提示也采用了这种风格。我猜这是因为它的设计中包含了一个TextBlock
。
我可以接受的是必须遍历和样式化每个定义的工具提示(因为它们在我的应用程序中不那么普遍使用),所以如果有某种方法可以定义一个工具提示样式,它将覆盖继承的文本块样式,我很好。
那么,我可以做些什么来阻止我的工具提示继承TextBlock样式?
1条答案
按热度按时间whitzsjs1#
在
TextBlock
上设置全局隐式样式是一个糟糕的想法,这就是原因。TextBlock
是显示文本的基元。只在需要的地方设置隐式TextBlock
样式要好得多,而不是普遍地设置。或者考虑使用
Label
而不是TextBlock
作为样式化文本示例,并使用隐式Label
样式。这就是Label
存在的原因之一。您可以设置填充/边距等样式。让它看起来像你想要的那样。