2012-02-10 3 views
2

я определяю стиль DataGridColumnHeader по ResourceDictionary с сеттер там:.Продлить DataGrid ColumnHeaderStyle программно

<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 по коду? Есть ли у кого-нибудь идеи? Спасибо!

ответ

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; 

надеюсь, что это помогает ...