gpt4 book ai didi

c# - 如何告诉元素及其子元素忽略全局样式

转载 作者:行者123 更新时间:2023-11-30 15:28:35 33 4
gpt4 key购买 nike

为了在我的应用程序中获得共同的外观和感觉,我为所有 TextBlock 元素定义了一个全局样式,如下所示:

MainSkin.xaml

<Style TargetType="{x:Type TextBlock}">
<Setter Property="Margin" Value="5,0,5,0"/>
</Style>

不幸的是,这弄乱了我使用的图表元素(来自外部 visifire 库)并剪裁了一些文本元素(在屏幕截图中用红色矩形标记):

enter image description here

View.xaml

xmlns:vc="clr-namespace:Visifire.Charts;assembly=WPFVisifire.Charts"

<vc:Chart>
<vc:Chart.Titles>
<vc:Title Text="SomeTitle" />
</vc:Chart.Titles>
<vc:Chart.AxesX>
<vc:Axis Title="X" TitleFontSize="12" />
</vc:Chart.AxesX>
<vc:Chart.AxesY>
<vc:Axis Title="Y" TitleFontSize="12"/>
</vc:Chart.AxesY>
</vc:Chart>

通过测试,我知道 TextBlock 样式的 Margin 设置是导致此问题的原因。我猜想在 Chart 元素内部的某处,他们使用了受我的样式影响的 TextBlock

如何让 Xaml 中的 Chart 元素及其子元素忽略全局 TextBlock 样式?

我尝试将图表样式设置为空,但没有成功。

注意事项:

  • 我不想编辑图表中使用的外部源代码
  • 我不想在我的风格中使用 x:Key

最佳答案

只需创建另一个不设置任何内容的 TextBlock 隐式样式:

<vc:Chart>
<vc:Chart.Resources>
<Style TargetType="TextBlock" />
</vc:Chart.Resources>

<vc:Chart.Titles>
<vc:Title Text="SomeTitle" />
</vc:Chart.Titles>
<vc:Chart.AxesX>
<vc:Axis Title="X" TitleFontSize="12" />
</vc:Chart.AxesX>
<vc:Chart.AxesY>
<vc:Axis Title="Y" TitleFontSize="12"/>
</vc:Chart.AxesY>
</vc:Chart>

关于c# - 如何告诉元素及其子元素忽略全局样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25522146/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com