wpf 如何阻止工具提示继承我的TextBlock样式?

h9a6wy2h  于 2023-05-08  发布在  其他
关注(0)|答案(1)|浏览(123)

我在应用程序资源中定义了一种样式,我希望所有的文本块都继承它:

<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样式?

whitzsjs

whitzsjs1#

TextBlock上设置全局隐式样式是一个糟糕的想法,这就是原因。TextBlock是显示文本的基元。只在需要的地方设置隐式TextBlock样式要好得多,而不是普遍地设置。
或者考虑使用Label而不是TextBlock作为样式化文本示例,并使用隐式Label样式。这就是Label存在的原因之一。您可以设置填充/边距等样式。让它看起来像你想要的那样。

相关问题