none
再问关于WPF中的样式问题 RRS feed

  • 问题

  • 在WPF中,想让整个应用中的某一种控件,比如说将Datagrid中所有CcolumnHeader都显示为绿色。那么可以在App.xaml中做如下定义:

    <Application.Resources>
            <Style TargetType="DataGridColumnHeader">
                <Setter Property="Foreground" Value="Green"/>
            </Style>
        </Application.Resources>

    以上定义,的确实现了我想要的效果,Datagrid控件的标题显示为绿色。于是我希望通过合并资源字典来完成同样的功能,就做了如下定义:

     <Application.Resources>
            <ResourceDictionary Source="/PresentationFramework.Aero, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35;component/themes/aero.normalcolor.xaml">
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="/Resources/DefaultControlStyles.xaml"/>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Application.Resources>

    其中:DefaultControlStyles.xaml的定义与前面的相同。但是现在,Datagrid并没有显示为绿色,我所定义的效果没有发生做用。我应当怎么来解决这个问题呢?

     

    2011年11月25日 11:46

答案

  • 问题自已解决了,这样写就可以了:

    <ResourceDictionary >
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="/PresentationFramework.Aero, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35;component/themes/aero.normalcolor.xaml"/>
                    <ResourceDictionary Source="/Resources/DefaultControlStyles.xaml"/>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>

    2011年11月25日 11:54

全部回复

  • 经测试,上面的问题与引用的系统定义的Aero效果有关,去掉那个效果,一切工作正常,问题是我需要那个效果,仅想在上面做少量的改动而已?除了把Aero的效果代码抄一份之外,还有什么办法能实现我想要的效果呢?

    2011年11月25日 11:50
  • 问题自已解决了,这样写就可以了:

    <ResourceDictionary >
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="/PresentationFramework.Aero, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35;component/themes/aero.normalcolor.xaml"/>
                    <ResourceDictionary Source="/Resources/DefaultControlStyles.xaml"/>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>

    2011年11月25日 11:54