настройка стиля строки в датагрид, silverlight 4 - PullRequest
1 голос
/ 14 июня 2011

Я пытаюсь изменить стиль строки для сетки данных, чтобы изменить цвет фона при выборе строки (не фон строки, а цвет прямоугольника выбора, который по умолчанию слишком блестящий для моего приложения). Однако поведение, которое я наблюдаю при применении к стилю к сетке, заключается в том, что все ряды сжимаются вместе, как сложенные жалюзи. Это стиль, который я написал:

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

Может кто-нибудь сказать мне, что здесь происходит? Я не совсем понял, как работают визуальные состояния, и просто снимал в темноте.

Спасибо

1 Ответ

2 голосов
/ 15 июня 2011

Проверка шаблона для DataGrid ( отметьте здесь ), цвет фона (синий) жестко задан в шаблоне. Когда строка выбрана, все, что происходит, это то, что прямоугольник становится видимым (Opacity = 1). К сожалению, я должен сказать, что вам нужно повторно шаблонировать весь DataGridRow ... в предоставленной ссылке вы найдете все, что вам может понадобиться для этого.

В шаблоне найдите код, подобный следующему: <Rectangle x:Name="BackgroundRectangle" Grid.RowSpan="2" Grid.ColumnSpan="2" Opacity="0" Fill="#FFBADDE9"/>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...