2

そこにセッターを使用して、ResourceDictionaryによってDataGridColumnHeaderのスタイルを定義しています。

<Style TargetType="{x:Type DataGridColumnHeader}">
  <Setter Property="Background">
    <Setter.Value>
      <LinearGradientBrush EndPoint="0,0" StartPoint="0,1">

など(それほど重要ではありません。

次に、ColumnHeaderのツールチップでスタイルを拡張します。このツールチップは状況によって異なるため、コードで設定する必要があります。

私はそのようにそれを行うことができます:

var style = new Style(typeof(System.Windows.Controls.Primitives.DataGridColumnHeader));
style.Setters.Add(new Setter(ToolTipService.ToolTipProperty,"my tooltop"));
dgcol1.HeaderStyle = style;

しかし、明らかに、リソース辞書の他のすべてのスタイルセッターは上書きされます。コードでツールチップをColumnHeaderに追加するにはどうすればよいですか?誰かが何か考えを持っていますか?ありがとうございました!

4

1 に答える 1

3

これを試すことができます

<Style x:Key="baseStyle" TargetType="{x:Type DataGridColumnHeader}">
  <Setter Property="Background">
    <Setter.Value>
      <LinearGradientBrush EndPoint="0,0" StartPoint="0,1">
    </Setter.Value>
  </Setter Property="Background">
</Style>

<Style TargetType="{x:Type DataGridColumnHeader}" BasedOn={StaticResource baseStyle}>

コードビハインド

var style = new Style(typeof(System.Windows.Controls.Primitives.DataGridColumnHeader));
style.BasedOn = this.TryFindResource("baseStyle") as Style;
style.Setters.Add(new Setter(ToolTipService.ToolTipProperty,"my tooltop"));
dgcol1.HeaderStyle = style;

お役に立てれば...

于 2012-02-10T08:40:12.060 に答える