/ / configuração de estilo de linha no datagrid, silverlight 4 - silverlight-4.0, datagrid, no estilo de codificação

definindo rowstyle em datagrid, silverlight 4 - silverlight-4.0, datagrid, estilo de codificação

Estou tentando alterar o estilo de linha para um datagridpara alterar a cor do plano de fundo quando uma linha é selecionada (não o plano de fundo da linha, mas a cor do retângulo de seleção, que por padrão é um pouco brilhante demais para o meu aplicativo). No entanto, o comportamento que estou observando ao aplicar o estilo à grade é que todas as linhas estão ficando encolhidas como uma veneziana dobrada. Esse é o estilo que escrevi:

<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>

Alguém pode me dizer o que está acontecendo aqui? Eu realmente não entendi como os estados visuais funcionam e meio que apenas disparando no escuro.

obrigado

Respostas:

2 para resposta № 1

Verificando o modelo para o DataGrid (Verifique aqui) a cor do plano de fundo (azul) é codificadano modelo. Quando a linha é selecionada, tudo o que acontece é que um retângulo se torna visível (Opacidade = 1). Infelizmente, tenho que dizer que você precisa refazer o modelo de todo o DataGridRow ... no link fornecido, você encontrará tudo o que precisa para isso.

No modelo, procure algum código como este: <Rectangle x:Name="BackgroundRectangle" Grid.RowSpan="2" Grid.ColumnSpan="2" Opacity="0" Fill="#FFBADDE9"/>