2014-08-27 20 views
3

要获得相同的外观&感觉在我的申请,我定义为我所有TextBlock元素那样的全局样式:如何分辨一个元素及其孩子的忽略全局样式

MainSkin.xaml

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

不幸的是这弄乱图表元素(来自外部的Visifire库)余使用和clippes一些文本元素(标有屏幕​​截图红色矩形):

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> 

从测试我知道Margin设定TextBlock风格是导致此。我想在Chart元素的某处,他们使用我的风格影响的TextBlock

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

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

注意事项:

  • 我不想编辑图表使用的外部源代码
  • 我不想用斧头:重点与我的风格

回答

4

只需创建另一个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> 
+1

你很好,这正是我需要的!非常感谢 :-) – nabulke 2014-08-27 09:04:29

相关问题