none
silverlight 样式设置问题 RRS feed

  • 问题

  • 封装datagrid,调整其的样式,表头,column,row等样式,设计方法见下面内容。  

    按照下面的操作,发现 DataGridEx只能展示了DataGridStyle1修改的样式,但是DataGridRowStyle1和其他表头,column等样式,并未使用样式文件中修改的样式。

    请问应该怎么管理样式能使在修改表头,column,row等样式后并设置给DataGridEx???

     

    覆盖默认样式:

        public class DataGridEx : DataGrid

        {

            public DataGridEx()

                : base()

            {

                if (!System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))

                {

                   this.DefaultStyleKey = typeof(DataGridEx);

                }

            }

        }

     

    样式文件定义:

    <ResourceDictionary

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"

        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

        xmlns:slControlsGv="clr-namespace:SLControls.GridView;assembly=SLControls">   

    <!--DataGrid样式-->

    <Style x:Key="DataGridStyle1" TargetType="slControlsGv:DataGridEx">

    <Setter Property="RowBackground" Value="#AAEAEFF4"/>

    。。。。。。。。。。。。。

    </Style>

    <!--DataGridRow样式-->

    <Style x:Key="DataGridRowStyle1" TargetType="sdk:DataGridRow">

    <Setter Property="IsTabStop" Value="False"/>

    。。。。。。。。。。。。。

    </Style>

     

    <!--其他表头,column等样式-->

    。。。。。

    </ResourceDictionary>

    2011年12月7日 13:46

答案

  • 你好,

    请问在你的DataGridStyle1里有设置RowStyle属性吗?

    比如像下面:

    <Setter Property="RowStyle" Value="{StaticResource DataGridRowStyle1}"></Setter>(设置之前一定把DataGridRowStyle1放在DataGridStyle1之前,否则运行会报错)

    或者你也可以在你的类中用代码设置RowStyle。

    其它样式类似如此。


    Daoping Liu - MSFT
    2011年12月9日 2:42
    版主