如何更改扩展WPF属性网格的网格线的颜色

时间:2014-05-28 00:41:01

标签: propertygrid

我正在使用WPF扩展的Propertygrid我已经更改了propertygrid的背景颜色,但我无法更改网格线的颜色,白色是属性。请在下面提到的链接中查看图片。

https://dl.dropboxusercontent.com/u/5865812/image1.png

谢谢,

1 个答案:

答案 0 :(得分:0)

不容易。没有简单的“Style”属性来配置PropertyGrid中的ItemsControl。您可以从源复制PropertyGrid的整个模板并进行修改。

您应该在codeplex上询问问题跟踪器上的功能请求。

与此同时,我发现的方法是创建自己的PropertyGrid子类,并在底层模板部分强制使用GroupStyle:

public override void OnApplyTemplate()
{
  base.OnApplyTemplate();
  PropertyItemsControl control = ( PropertyItemsControl )this.GetTemplateChild( "PART_PropertyItemsControl" );
  var s = ( GroupStyle )this.Resources[ "groupStyle" ];
  control.GroupStyle.RemoveAt( 0 );
  control.GroupStyle.Add( s );
}

在你的xaml中:

      <local:MyPropertyGrid >
     <local:MyPropertyGrid.Resources>
        <GroupStyle x:Key="groupStyle">
           <GroupStyle.ContainerStyle>
              <Style TargetType="{x:Type GroupItem}">
                 <Setter Property="Template">
                    <Setter.Value>
                       <ControlTemplate>
                          <Border>
                             <Expander Header="{Binding Name}"
                                       IsExpanded="True"
                                       Background="Green">
                                <ItemsPresenter />
                             </Expander>
                          </Border>
                       </ControlTemplate>
                    </Setter.Value>
                 </Setter>
              </Style>
           </GroupStyle.ContainerStyle>
        </GroupStyle>
     </local:MyPropertyGrid.Resources>
      </local:MyPropertyGrid >