我在ResourceDictionary中使用Setter定义了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? 有谁有想法吗?谢谢!
答案 0 :(得分: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;
希望这会有所帮助...