在datagrid中设置rowstyle,silverlight 4

时间:2011-06-14 16:36:20

标签: silverlight-4.0 datagrid coding-style

我正在尝试更改数据网格的行样式,以便在选择行时更改背景颜色(不是行背景,而是选择矩形的颜色,默认情况下对我的应用程序来说有点太亮了)。然而,我在应用于网格样式时看到的行为是所有行都像折叠的百叶窗一样收缩在一起。这是我写的风格:

<Style x:Key="DataGridRowStyle" TargetType="sdk:DataGridRow">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="sdk:DataGridRow">
                        <sdk:DataGrid>
                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="CommonStates">                                       
                                    <VisualState x:Name="Normal Selected">
                                        <Storyboard>
                                            <ColorAnimation 
                                                Storyboard.TargetName="ButtonBrush" 
                                                Storyboard.TargetProperty="Color" 
                                                To="Red" />                                            
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                            </VisualStateManager.VisualStateGroups>
                        </sdk:DataGrid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

有人能告诉我这里发生了什么吗? tbh我真的不明白视觉状态是如何工作的,而且只是在黑暗中拍摄。

由于

1 个答案:

答案 0 :(得分:2)

检查DataGrid的模板(check here)背景颜色(蓝色)在模板中是硬编码的。选择行时,所有发生的事情都是矩形变得可见(Opacity = 1)。遗憾的是不得不说你必须重新模板整个DataGridRow ...在提供的链接中你会发现你可能需要的所有东西。

在模板中查找如下代码: <Rectangle x:Name="BackgroundRectangle" Grid.RowSpan="2" Grid.ColumnSpan="2" Opacity="0" Fill="#FFBADDE9"/>