3

アプリケーションで共通のルック アンド フィールを得るために、次のTextBlockようにすべての要素にグローバル スタイルを定義しました。

MainSkin.xaml

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

残念ながら、これは(外部visifireライブラリからの)チャート要素をめちゃくちゃにし、私が使用し、いくつかのテキスト要素を切り取ります(スクリーンショットの赤い四角形でマークされています):

ここに画像の説明を入力

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 スタイルを無視するように指示するにはどうすればよいですか?

Chart スタイルを null に設定しようとしましたが、成功しませんでした。

警告:

  • チャートで使用されている外部ソース コードを編集したくない
  • 自分のスタイルで ax:Key を使用したくない
4

1 に答える 1

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>
于 2014-08-27T08:56:39.470 に答える