gpt4 book ai didi

c# - 以编程方式扩展 DataGrid ColumnHeaderStyle

转载 作者:行者123 更新时间:2023-11-30 22:31:27 25 4
gpt4 key购买 nike

我正在通过 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;

但很明显,资源字典中的所有其他样式 setter 都将被覆盖。如何通过代码将工具提示添加到 ColumnHeader?有人有什么主意吗?谢谢!

最佳答案

你可以试试这个

<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;

希望这有助于...

关于c# - 以编程方式扩展 DataGrid ColumnHeaderStyle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9224376/

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