This is a migrated thread and some comments may be shown as answers.

GridViewRow Selected Background color is wrong

3 Answers 301 Views
GridView
This is a migrated thread and some comments may be shown as answers.
Tony
Top achievements
Rank 1
Tony asked on 07 Dec 2012, 03:25 PM

My application has a RadGridView control in it.  I have customized the style used by the GridViewRow class in my app.xaml:

<Style TargetType="{x:Type telerik:GridViewRow}">
    <Setter Property="IsTabStop" Value="False"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type telerik:GridViewRow}">
                <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="FocusStates">
                            <VisualState x:Name="Unfocused"/>
                            <VisualState x:Name="Focused">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="NavigatorIndicator">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                        <VisualStateGroup x:Name="SelectionStates">
                            <VisualState x:Name="Unselected"/>
                        </VisualStateGroup>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualState x:Name="Normal"/>
                            <VisualState x:Name="MouseOver">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="Background_Over">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="Selected">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="Background_Selected">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="NavigatorIndicatorBackground">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                                    <GradientStop Color="White" Offset="0"/>
                                                    <GradientStop Color="#FFE4E4E4" Offset="1"/>
                                                </LinearGradientBrush>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                        <VisualStateGroup x:Name="ValueStates">
                            <VisualState x:Name="RowValid"/>
                            <VisualState x:Name="RowInvalid">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="Background_Invalid">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="ErrorIndicator">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                        <VisualStateGroup x:Name="EditStates">
                            <VisualState x:Name="ReadOnlyMode"/>
                            <VisualState x:Name="EditMode">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="EditIndicator">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <telerik:SelectiveScrollingGrid x:Name="grid">
                        <telerik:SelectiveScrollingGrid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="*"/>
                        </telerik:SelectiveScrollingGrid.ColumnDefinitions>
                        <telerik:SelectiveScrollingGrid.RowDefinitions>
                            <RowDefinition Height="*"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                        </telerik:SelectiveScrollingGrid.RowDefinitions>
                        <Border x:Name="SelectionBackground" Grid.ColumnSpan="2" Grid.Column="2" Margin="{TemplateBinding Margin}" Padding="{TemplateBinding Padding}" telerik:SelectiveScrollingGrid.SelectiveScrollingClip="True" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                        <Border x:Name="Background_Over" BorderBrush="#FFFFC92B" BorderThickness="1" Grid.ColumnSpan="2" Grid.Column="2" CornerRadius="1" Margin="1,1,1,2" telerik:SelectiveScrollingGrid.SelectiveScrollingClip="True" Visibility="Collapsed">
                            <Border BorderBrush="White"
                                    BorderThickness="1" />
                        </Border>
                        <Border x:Name="Background_Selected"
                                BorderBrush="{DynamicResource DataBorderSelected}"
                                BorderThickness="1"
                                Grid.ColumnSpan="2"
                                Grid.Column="2"
                                CornerRadius="1"
                                Margin="1,1,1,2"
                                telerik:SelectiveScrollingGrid.SelectiveScrollingClip="True"
                                Visibility="Collapsed">
                            <Border Background="{DynamicResource DataBackgroundSelected}"
                                    BorderBrush="White"
                                    BorderThickness="1" />
                        </Border>
                        <Border x:Name="Background_Invalid" BorderBrush="#FFCE7D7D" BorderThickness="1" Grid.ColumnSpan="2" Grid.Column="2" CornerRadius="1" Margin="1,1,1,2" telerik:SelectiveScrollingGrid.SelectiveScrollingClip="True" Visibility="Collapsed">
                            <Border BorderThickness="1">
                                <Border.BorderBrush>
                                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                        <GradientStop Color="#FFEBF4FD"/>
                                        <GradientStop Color="#FFDBEAFD" Offset="1"/>
                                    </LinearGradientBrush>
                                </Border.BorderBrush>
                                <Border.Background>
                                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                        <GradientStop Color="#FFFCDCDC"/>
                                        <GradientStop Color="#FFFCC1C1" Offset="1"/>
                                    </LinearGradientBrush>
                                </Border.Background>
                            </Border>
                        </Border>
                        <telerik:GridViewToggleButton x:Name="PART_HierarchyExpandButton" Grid.Column="2" IsHitTestVisible="{Binding IsExpandable, RelativeSource={RelativeSource TemplatedParent}}" IsTabStop="{TemplateBinding IsTabStop}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" Width="25">
                            <telerik:GridViewToggleButton.Opacity>
                                <Binding Path="IsExpandable" RelativeSource="{RelativeSource TemplatedParent}">
                                    <Binding.Converter>
                                        <telerik:BooleanToOpacityConverter/>
                                    </Binding.Converter>
                                </Binding>
                            </telerik:GridViewToggleButton.Opacity>
                            <telerik:StyleManager.Theme>
                                <telerik:Office_BlackTheme/>
                            </telerik:StyleManager.Theme>
                            <telerik:GridViewToggleButton.Template>
                                <ControlTemplate TargetType="{x:Type telerik:GridViewToggleButton}">
                                    <Border Background="Transparent" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                                        <VisualStateManager.VisualStateGroups>
                                            <VisualStateGroup x:Name="CommonStates">
                                                <VisualState x:Name="Normal"/>
                                                <VisualState x:Name="MouseOver"/>
                                                <VisualState x:Name="Disabled"/>
                                            </VisualStateGroup>
                                            <VisualStateGroup x:Name="CheckStates">
                                                <VisualState x:Name="Checked">
                                                    <Storyboard>
                                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="plus">
                                                            <DiscreteDoubleKeyFrame KeyTime="0" Value="0"/>
                                                        </DoubleAnimationUsingKeyFrames>
                                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="minus">
                                                            <DiscreteDoubleKeyFrame KeyTime="0" Value="1"/>
                                                        </DoubleAnimationUsingKeyFrames>
                                                    </Storyboard>
                                                </VisualState>
                                                <VisualState x:Name="Unchecked"/>
                                            </VisualStateGroup>
                                            <VisualStateGroup x:Name="FocusStates">
                                                <VisualState x:Name="Focused"/>
                                                <VisualState x:Name="Unfocused"/>
                                            </VisualStateGroup>
                                        </VisualStateManager.VisualStateGroups>
                                        <Border BorderBrush="{DynamicResource DataBorder}" BorderThickness="{TemplateBinding BorderThickness}" Background="{DynamicResource DataBackground}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Height="9" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Width="9">
                                            <Grid>
                                                <Path x:Name="plus" Data="M1.937,0L2.937,0 2.937,2.0209999 5,2.0209999 5,3.0209999 2.937,3.0209999 2.937,5 1.937,5 1.937,3.0209999 0,3.0209999 0,2.0209999 1.937,2.0209999z" Fill="Black" Height="5" Margin="{TemplateBinding Padding}" Stretch="Fill" Stroke="{x:Null}" Width="5"/>
                                                <Rectangle x:Name="minus" Fill="Black" HorizontalAlignment="Center" Height="1" Margin="{TemplateBinding Padding}" Opacity="0" RadiusY="0" RadiusX="0" Stroke="{x:Null}" VerticalAlignment="Center" Width="5"/>
                                            </Grid>
                                        </Border>
                                    </Border>
                                </ControlTemplate>
                            </telerik:GridViewToggleButton.Template>
                            <telerik:GridViewToggleButton.Visibility>
                                <Binding Path="HasHierarchy" RelativeSource="{RelativeSource TemplatedParent}">
                                    <Binding.Converter>
                                        <telerik:BooleanToVisibilityConverter/>
                                    </Binding.Converter>
                                </Binding>
                            </telerik:GridViewToggleButton.Visibility>
                        </telerik:GridViewToggleButton>
                        <Border Grid.Column="2" telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical">
                            <Border.Visibility>
                                <Binding Path="HasHierarchy" RelativeSource="{RelativeSource TemplatedParent}">
                                    <Binding.Converter>
                                        <telerik:BooleanToVisibilityConverter/>
                                    </Binding.Converter>
                                </Binding>
                            </Border.Visibility>
                        </Border>
                        <telerik:DataCellsPresenter Background="{TemplateBinding Background}"  x:Name="PART_DataCellsPresenter" Grid.Column="3" IsTabStop="False">
                            <telerik:StyleManager.Theme>
                                <telerik:Office_BlackTheme/>
                            </telerik:StyleManager.Theme>
                        </telerik:DataCellsPresenter>
                        <Border x:Name="PART_RowBorder" BorderBrush="{TemplateBinding HorizontalGridLinesBrush}" Grid.ColumnSpan="4" Grid.Column="1" Grid.RowSpan="4" telerik:SelectiveScrollingGrid.SelectiveScrollingClip="True" VerticalAlignment="Bottom">
                            <Border.BorderThickness>
                                <Binding ConverterParameter="Bottom" Path="HorizontalGridLinesWidth" RelativeSource="{RelativeSource TemplatedParent}">
                                    <Binding.Converter>
                                        <telerik:GridLineWidthToThicknessConverter/>
                                    </Binding.Converter>
                                </Binding>
                            </Border.BorderThickness>
                        </Border>
                        <Border BorderBrush="#FF848484" BorderThickness="0,1" Background="#FFBBBBBB" Grid.ColumnSpan="2" Grid.Column="2" Padding="6" Grid.Row="2" telerik:SelectiveScrollingGrid.SelectiveScrollingClip="True">
                            <Border.Visibility>
                                <Binding Path="IsExpanded" RelativeSource="{RelativeSource TemplatedParent}">
                                    <Binding.Converter>
                                        <telerik:BooleanToVisibilityConverter/>
                                    </Binding.Converter>
                                </Binding>
                            </Border.Visibility>
                            <ContentPresenter x:Name="PART_HierarchyChildPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" telerik:SelectiveScrollingGrid.SelectiveScrollingClip="True"/>
                        </Border>
                        <telerik:DetailsPresenter x:Name="PART_DetailsPresenter" Grid.ColumnSpan="2" Grid.Column="2" DetailsProvider="{TemplateBinding DetailsProvider}" IsTabStop="False" Grid.Row="1" telerik:SelectiveScrollingGrid.SelectiveScrollingClip="True">
                            <telerik:StyleManager.Theme>
                                <telerik:Office_BlackTheme/>
                            </telerik:StyleManager.Theme>
                        </telerik:DetailsPresenter>
                        <telerik:IndentPresenter x:Name="PART_IndentPresenter" Grid.Column="1" IsTabStop="False" IndentLevel="{TemplateBinding IndentLevel}" Grid.RowSpan="4" telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical">
                            <telerik:StyleManager.Theme>
                                <telerik:Office_BlackTheme/>
                            </telerik:StyleManager.Theme>
                        </telerik:IndentPresenter>
                        <Border x:Name="PART_IndicatorPresenter" BorderBrush="#FF848484" BorderThickness="0,0,1,1" Grid.Column="0" Grid.RowSpan="3" telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" Visibility="{TemplateBinding RowIndicatorVisibility}" VerticalAlignment="Stretch" Width="25">
                            <Border x:Name="NavigatorIndicatorBackground" BorderBrush="{DynamicResource DataBorderselected}" BorderThickness="1" Background="{DynamicResource DataBackgroundSelected}">
                                <Grid>
                                    <Grid x:Name="NavigatorIndicator" HorizontalAlignment="Center" Height="11" Visibility="Collapsed" VerticalAlignment="Center" Width="11">
                                        <Path Data="F1M32.0234,6.66669L24.2923,0.0248413 28.3697,0.0248413 32,3.14362 36.1492,6.70819 32,10.2728 28.4664,13.3085 24.2923,13.3085 32.0234,6.66669z" Fill="#FF848484" HorizontalAlignment="Center" Height="8" Margin="0" Stretch="Fill" VerticalAlignment="Center" Width="8"/>
                                    </Grid>
                                    <Grid x:Name="EditIndicator" HorizontalAlignment="Center" Height="10" Visibility="Collapsed" VerticalAlignment="Center" Width="16">
                                        <Path Data="M14,9L15,9 15,10 14,10z M1,9L2,9 2,10 1,10z M15,8L16,8 16,9 15,9z M0,8L1,8 1,9 0,9z M15,1L16,1 16,2 15,2z M0,1L1,1 1,2 0,2z M14,0L15,0 15,1 14,1z M1,0L2,0 2,1 1,1z" Fill="#7F848484" Stretch="Fill"/>
                                        <Path Data="M0.99999994,6.9999995L2,6.9999995 3,6.9999995 4,6.9999995 5,6.9999995 6,6.9999995 7,6.9999995 8,6.9999995 9,6.9999995 10,6.9999995 11,6.9999995 12,6.9999995 13,6.9999995 13,7.9999995 12,7.9999995 11,7.9999995 10,7.9999995 9,7.9999995 8,7.9999995 7,7.9999995 6,7.9999995 5,7.9999995 4,7.9999995 3,7.9999995 2,7.9999995 0.99999994,7.9999995z M13,0.99999994L14,0.99999994 14,1.9999999 14,2.9999995 14,3.9999995 14,4.9999995 14,5.9999995 14,6.9999995 13,6.9999995 13,5.9999995 13,4.9999995 13,3.9999995 13,2.9999995 13,1.9999999z M0,0.99999994L0.99999994,0.99999994 0.99999994,1.9999999 0.99999994,2.9999995 0.99999994,3.9999995 0.99999994,4.9999995 0.99999994,5.9999995 0.99999994,6.9999995 0,6.9999995 0,5.9999995 0,4.9999995 0,3.9999995 0,2.9999995 0,1.9999999z M11,0L12,0 13,0 13,0.99999994 12,0.99999994 11,0.99999994 10,0.99999994 9,0.99999994 8,0.99999994 7,0.99999994 6,0.99999994 5,0.99999994 4,0.99999994 3,0.99999994 2,0.99999994 0.99999994,0.99999994 0.99999994,2.3841858E-07 2,2.3841858E-07 3,2.3841858E-07 4,2.3841858E-07 5,2.3841858E-07 6,2.3841858E-07 7,2.3841858E-07 8,2.3841858E-07 9,2.3841858E-07 10,2.3841858E-07z" Fill="#FFCBCBCB" Margin="1" Stretch="Fill"/>
                                        <Path Data="M2,9L3,9 4,9 5,9 6,9 7,9 8,9 9,9 10,9 11,9 12,9 13,9 14,9 14,10 13,10 12,10 11,10 10,10 9,10 8,10 7,10 6,10 5,10 4,10 3,10 2,10z M14,8L15,8 15,9 14,9z M1,8L2,8 2,9 1,9z M15,2L16,2 16,3 16,4 16,5 16,6 16,7 16,8 15,8 15,7 15,6 15,5 15,4 15,3z M3,2L4,2 5,2 6,2 6,3 5,3 5,4 5,5 5,6 5,7 6,7 6,8 5,8 4,8 3,8 3,7 4,7 4,6 4,5 4,4 4,3 3,3z M0,2L1,2 1,3 1,4 1,5 1,6 1,7 1,8 0,8 0,7 0,6 0,5 0,4 0,3z M14,1L15,1 15,2 14,2z M1,1L2,1 2,2 1,2z M2,0L3,0 4,0 5,0 6,0 7,0 8,0 9,0 10,0 11,0 12,0 13,0 14,0 14,1 13,1 12,1 11,1 10,1 9,1 8,1 7,1 6,1 5,1 4,1 3,1 2,1z" Fill="#FF848484" Stretch="Fill"/>
                                        <Path Data="M4,0L5,0 6,0 7,0 8,0 9,0 10,0 11,0 12,0 12,1 12,2 12,3 12,4 12,5.0000001 12,6 11,6 10,6 9,6 8,6 7,6 6,6 5,6 4,6 4,5.0000001 3,5.0000001 3,4 3,3 3,2 3,1 4,1z M0,0L1,0 1,1 2,1 2,2 2,3 2,4 2,5.0000001 1,5.0000001 1,6 0,6 0,5.0000001 0,4 0,3 0,2 0,1z" Fill="White" Margin="2" Stretch="Fill"/>
                                    </Grid>
                                    <Grid x:Name="ErrorIndicator" HorizontalAlignment="Center" Height="16" Visibility="Collapsed" VerticalAlignment="Center" Width="16">
                                        <Grid.ToolTip>
                                            <ToolTip x:Name="validationTooltip" Content="{TemplateBinding Errors}" Placement="Bottom">
                                                <ToolTip.Template>
                                                    <ControlTemplate TargetType="{x:Type ToolTip}">
                                                        <Grid x:Name="Root" Margin="5,0" Opacity="0" RenderTransformOrigin="0,0">
                                                            <Grid.RenderTransform>
                                                                <TranslateTransform X="-25"/>
                                                            </Grid.RenderTransform>
                                                            <VisualStateManager.VisualStateGroups>
                                                                <VisualStateGroup x:Name="OpenStates">
                                                                    <VisualStateGroup.Transitions>
                                                                        <VisualTransition From="{x:Null}" GeneratedDuration="0" GeneratedEasingFunction="{x:Null}" Storyboard="{x:Null}" To="{x:Null}"/>
                                                                        <VisualTransition From="{x:Null}" GeneratedDuration="0:0:0.2" GeneratedEasingFunction="{x:Null}" To="Open">
                                                                            <Storyboard>
                                                                                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="X" Storyboard.TargetName="xform">
                                                                                    <SplineDoubleKeyFrame KeyTime="0:0:0.2" Value="0"/>
                                                                                </DoubleAnimationUsingKeyFrames>
                                                                                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="Root">
                                                                                    <SplineDoubleKeyFrame KeyTime="0:0:0.2" Value="1"/>
                                                                                </DoubleAnimationUsingKeyFrames>
                                                                            </Storyboard>
                                                                        </VisualTransition>
                                                                    </VisualStateGroup.Transitions>
                                                                    <VisualState x:Name="Closed">
                                                                        <Storyboard>
                                                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="Root">
                                                                                <SplineDoubleKeyFrame KeyTime="0" Value="0"/>
                                                                            </DoubleAnimationUsingKeyFrames>
                                                                        </Storyboard>
                                                                    </VisualState>
                                                                    <VisualState x:Name="Open">
                                                                        <Storyboard>
                                                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="X" Storyboard.TargetName="xform">
                                                                                <SplineDoubleKeyFrame KeyTime="0" Value="0"/>
                                                                            </DoubleAnimationUsingKeyFrames>
                                                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="Root">
                                                                                <SplineDoubleKeyFrame KeyTime="0" Value="1"/>
                                                                            </DoubleAnimationUsingKeyFrames>
                                                                        </Storyboard>
                                                                    </VisualState>
                                                                </VisualStateGroup>
                                                            </VisualStateManager.VisualStateGroups>
                                                            <Border Background="#052A2E31" CornerRadius="5" Margin="4,4,-4,-4"/>
                                                            <Border Background="#152A2E31" CornerRadius="4" Margin="3,3,-3,-3"/>
                                                            <Border Background="#252A2E31" CornerRadius="3" Margin="2,2,-2,-2"/>
                                                            <Border Background="#352A2E31" CornerRadius="2" Margin="1,1,-1,-1"/>
                                                            <Border Background="#FFDC000C" CornerRadius="2"/>
                                                            <Border CornerRadius="2">
                                                                <ItemsControl>
                                                                    <ItemsControl.ItemsPanel>
                                                                        <ItemsPanelTemplate>
                                                                            <StackPanel IsItemsHost="True"/>
                                                                        </ItemsPanelTemplate>
                                                                    </ItemsControl.ItemsPanel>
                                                                    <ItemsControl.ItemTemplate>
                                                                        <DataTemplate>
                                                                            <TextBlock Foreground="White" MaxWidth="250" Margin="8,4" TextWrapping="Wrap" Text="{Binding}"/>
                                                                        </DataTemplate>
                                                                    </ItemsControl.ItemTemplate>
                                                                </ItemsControl>
                                                            </Border>
                                                        </Grid>
                                                    </ControlTemplate>
                                                </ToolTip.Template>
                                            </ToolTip>
                                        </Grid.ToolTip>
                                        <Path Data="M3,12.999999L4,12.999999 5,12.999999 6,12.999999 7,12.999999 8,12.999999 9,12.999999 10,12.999999 11,12.999999 11,13.999999 10,13.999999 9,13.999999 8,13.999999 7,13.999999 6,13.999999 5,13.999999 4,13.999999 3,13.999999z M11,11.999999L12,11.999999 12,12.999999 11,12.999999z M2.0000001,11.999999L3,11.999999 3,12.999999 2.0000001,12.999999z M12,10.999999L13,10.999999 13,11.999999 12,11.999999z M1,10.999999L2.0000001,10.999999 2.0000001,11.999999 1,11.999999z M13,2.9999992L14,2.9999992 14,3.9999992 14,4.9999992 14,5.9999992 14,6.9999992 14,7.9999992 14,8.9999992 14,9.9999992 14,10.999999 13,10.999999 13,9.9999992 13,8.9999992 13,7.9999992 13,6.9999992 13,5.9999992 13,4.9999992 13,3.9999992z M0,2.9999992L1,2.9999992 1,3.9999992 1,4.9999992 1,5.9999992 1,6.9999992 1,7.9999992 1,8.9999992 1,9.9999992 1,10.999999 0,10.999999 0,9.9999992 0,8.9999992 0,7.9999992 0,6.9999992 0,5.9999992 0,4.9999992 0,3.9999992z M12,1.9999999L13,1.9999999 13,2.9999992 12,2.9999992z M1,1.9999999L2.0000001,1.9999999 2.0000001,2.9999992 1,2.9999992z M11,0.99999994L12,0.99999994 12,1.9999999 11,1.9999999z M2.0000001,0.99999994L2.9999998,0.99999994 2.9999998,1.9999999 2.0000001,1.9999999z M2.9999998,0L3.9999998,0 5,0 6,0 7,0 8,0 9,0 10,0 11,0 11,0.99999994 10,0.99999994 9,0.99999994 8,0.99999994 7,0.99999994 6,0.99999994 5,0.99999994 3.9999998,0.99999994 2.9999998,0.99999994z" Margin="1" Stretch="Fill">
                                            <Path.Fill>
                                                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                                    <GradientStop Color="#FFFC9999" Offset="0"/>
                                                    <GradientStop Color="#FFC26666" Offset="1"/>
                                                </LinearGradientBrush>
                                            </Path.Fill>
                                        </Path>
                                        <Path Data="M1.4901161E-07,8L1.0000001,8 2.0000002,8 2.0000002,9 2.0000002,10 1.0000003,10 1.0000003,9 1.0000001,10 1.4901161E-07,10 1.4901161E-07,9z M1.4901161E-07,0L1.0000001,0 2.0000002,0 2.0000002,1 2.0000002,2 2.0000002,3 2.0000002,4.0000001 2.0000002,5 2.0000002,5.9999999 2.0000002,7 1.0000001,7 1.4901161E-07,7 1.4901161E-07,5.9999999 1.4901161E-07,5 1.4901161E-07,4.0000001 1.4901161E-07,3 1.4901161E-07,2 0,1z" Fill="White" Margin="7,3" Stretch="Fill"/>
                                        <Path Data="M4,15L5,15 6,15 7,15 8,15 9,15 10,15 11,15 12,15 12,16 11,16 10,16 9,16 8,16 7,16 6,16 5,16 4,16z M12,14L13,14 13,15 12,15z M3,14L4,14 4,15 3,15z M13,13L14,13 14,14 13,14z M2,13L3,13 3,14 2,14z M14,12L15,12 15,13 14,13z M1,12L2,12 2,13 1,13z M7,11L7,12 7,13 8,13 9,13 9,12 9,11 8,11z M15,4L16,4 16,5 16,6 16,7 16,8 16,9 16,10 16,11 16,12 15,12 15,11 15,10 15,9 15,8 15,7 15,6 15,5z M0,4L1,4 1,5 1,6 1,7 1,8 1,9 1,10 1,11 1,12 0,12 0,11 0,10 0,9 0,8 0,7 0,6 0,5z M14,3L15,3 15,4 14,4z M7,3L7,4 7,5 7,6 7,7 7,8 7,9 7,10 8,10 9,10 9,9 9,8 9,7 9,6 9,5 9,4 9,3 8,3z M1,3L2,3 2,4 1,4z M13,2L14,2 14,3 13,3z M4,2L5,2 6,2 7,2 8,2 9,2 10,2 11,2 12,2 12,3 13,3 13,4 14,4 14,5 14,6 14,7 14,8 14,9 14,10 14,11 14,12 13,12 13,13 12,13 12,14 11,14 10,14 9,14 8,14 7,14 6,14 5,14 4,14 4,13 3,13 3,12 2,12 2,11 2,10 2,9 2,8 2,7 2,6 2,5 2,4 3,4 3,3 4,3z M2,2L3,2 3,3 2,3z M12,1L13,1 13,2 12,2z M3,1L4,1 4,2 3,2z M4,0L5,0 6,0 7,0 8,0 9,0 10,0 11,0 12,0 12,1 11,1 10,1 9,1 8,1 7,1 6,1 5,1 4,1z" Stretch="Fill">
                                            <Path.Fill>
                                                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                                    <GradientStop Color="Red" Offset="0"/>
                                                    <GradientStop Color="#FF990000" Offset="1"/>
                                                </LinearGradientBrush>
                                            </Path.Fill>
                                        </Path>
                                    </Grid>
                                    <Border x:Name="PART_RowResizer" Background="Transparent" Cursor="SizeNS" Height="2" VerticalAlignment="Bottom"/>
                                </Grid>
                            </Border>
                        </Border>
                    </telerik:SelectiveScrollingGrid>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Setter Property="Background"                 Value="{DynamicResource DataBackground}" />
    <Setter Property="BorderThickness"            Value="0" />
    <Setter Property="AllowDrop"                  Value="True"/>
    <Setter Property="FontWeight"                 Value="Normal"/>
    <Setter Property="VerticalContentAlignment"   Value="Stretch"/>
    <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
    <Setter Property="Padding"                    Value="0"/>
    <Setter Property="SnapsToDevicePixels"        Value="True"/>
</Style>

The application uses merged dictionaries to change color palettes between "day mode" and "night mode".  Here is the night mode color palette:

                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
     
    <!-- Brushes -->
    <SolidColorBrush x:Key="AlarmReadBackground"             Color="#FF141414" />
    <SolidColorBrush x:Key="AlarmReadForeground"             Color="Yellow" />
    <SolidColorBrush x:Key="AlarmTitleBackground"             Color="DarkRed" />
    <SolidColorBrush x:Key="AlternatingRowBackground"        Color="CadetBlue" />
    <SolidColorBrush x:Key="ButtonBackground"                Color="#FF323232" />
    <SolidColorBrush x:Key="ButtonForeground"                Color="Yellow" />
    <SolidColorBrush x:Key="ButtonDisabled"                  Color="Black" />
    <SolidColorBrush x:Key="ButtonDisabledBackground"        Color="#FF151515" />
    <SolidColorBrush x:Key="ChromeDisabledBackgroundOverlay" Color="#AF080808" />
    <SolidColorBrush x:Key="ComboBoxBackground"              Color="#FF141414" />
    <SolidColorBrush x:Key="ComboBoxBorder"                  Color="#FF646464" />
    <SolidColorBrush x:Key="ComboBoxForeground"              Color="Yellow" />
    <SolidColorBrush x:Key="ContentBackground"               Color="Black" />
    <SolidColorBrush x:Key="ControlBackground"               Color="Black" />
    <SolidColorBrush x:Key="ControlBorder"                   Color="#FF646464" />
    <SolidColorBrush x:Key="ControlForeground"               Color="Yellow" />
    <SolidColorBrush x:Key="DataBackground"                  Color="#FF282828" />
    <SolidColorBrush x:Key="DataBackgroundSelected"          Color="#FF515151" />
    <SolidColorBrush x:Key="DataBorder"                      Color="#FF688CAF" />
    <SolidColorBrush x:Key="DataBorderFocused"                 Color="DarkRed" />
    <SolidColorBrush x:Key="DataBorderSelected"                 Color="DarkBlue" />
    <SolidColorBrush x:Key="DataForeground"                  Color="Yellow" />
    <SolidColorBrush x:Key="DataForegroundSelected"          Color="Yellow" />
    <SolidColorBrush x:Key="DataGridLines"                   Color="#FFECE9D8" />
    <SolidColorBrush x:Key="DataHeaderBackground"            Color="#FF282828" />
    <SolidColorBrush x:Key="DataHeaderForeground"            Color="#FFEBEB1C" />
    <SolidColorBrush x:Key="DataRowBackground"               Color="Transparent" />
    <SolidColorBrush x:Key="DeviceStatusButtonBorder"        Color="White" />
    <SolidColorBrush x:Key="DeviceStatusButtonForeground"    Color="#FF3C4E64" />
    <SolidColorBrush x:Key="DeviceStatusButtonStrokeBrush"   Color="Black" />
    <SolidColorBrush x:Key="DialogBackground"                Color="Black" />
    <SolidColorBrush x:Key="DialogForeground"                Color="Yellow" />
    <SolidColorBrush x:Key="DialogSeparator"                 Color="#FFF1EFE2" />
    <SolidColorBrush x:Key="DlgWindowBackground"             Color="Black" />
    <SolidColorBrush x:Key="FocusedBackground"               Color="#FFFF9605" />
    <SolidColorBrush x:Key="FocusedForeground"               Color="Blue" />
    <SolidColorBrush x:Key="EmptyAreaBackground"             Color="White" />
    <SolidColorBrush x:Key="FlasherFill"                     Color="#FF868686" />
    <SolidColorBrush x:Key="HotListBackground"               Color="#FF323232" />
    <SolidColorBrush x:Key="HotListBorder"                   Color="#FF646464" />
    <SolidColorBrush x:Key="HotListForeground"               Color="Yellow" />
    <SolidColorBrush x:Key="InfoBackground"                  Color="#FF141414" />
    <SolidColorBrush x:Key="InfoText"                        Color="#FFFFFF66" />
    <SolidColorBrush x:Key="PlateInfoBackground"             Color="#FF141414" />
    <SolidColorBrush x:Key="MBContentBackground"             Color="Black" />
    <SolidColorBrush x:Key="MBTextForeground"                 Color="Yellow" />
    <SolidColorBrush x:Key="PlateInfoBorder"                 Color="#FF646464" />
    <SolidColorBrush x:Key="PlateInfoForeground"             Color="Yellow" />
         
    <SolidColorBrush x:Key="PopupBackground"                 Color="Black" />
     
    <SolidColorBrush x:Key="ProgressBackground"              Color="Black" />
    <SolidColorBrush x:Key="ScreenBackground"                Color="Black" />
    <SolidColorBrush x:Key="SeparatorColor"                  Color="#FF323232" />
    <SolidColorBrush x:Key="TabBackground"                   Color="Black" />
    <SolidColorBrush x:Key="TabBorder"                       Color="#FF646464" />
    <SolidColorBrush x:Key="TabForeground"                   Color="#FF323232" />
    <SolidColorBrush x:Key="TabHeaderBackground"             Color="Black" />
    <SolidColorBrush x:Key="TabHeaderForeground"             Color="#FF323232" />
    <SolidColorBrush x:Key="TabHeaderSelectedBackground"     Color="#FF323232" />
    <SolidColorBrush x:Key="TabHeaderSelectedForeground"     Color="Yellow" />
    <SolidColorBrush x:Key="TextBackground"                     Color="Black" />
    <SolidColorBrush x:Key="TextForeground"                     Color="Yellow" />
    <SolidColorBrush x:Key="TitleBackground"                 Color="Black" />
    <SolidColorBrush x:Key="TitleBorder"                     Color="#FFF1EFE2" />
    <SolidColorBrush x:Key="TitleForeground"                 Color="Yellow" />
    <SolidColorBrush x:Key="TitleSeparator"                  Color="#FFF1EFE2" />
    <SolidColorBrush x:Key="TooltipBackground"                 Color="Black" />
    <SolidColorBrush x:Key="TooltipForeground"                 Color="DarkGray" />
    <SolidColorBrush x:Key="UnfocusedBackground"             Color="#FF282828" />
    <SolidColorBrush x:Key="UnfocusedForeground"             Color="Yellow" />
    <SolidColorBrush x:Key="VolumeBar"                       Color="#FFE61E0F" />
    <SolidColorBrush x:Key="WindowBackground"                Color="Black" />
    <SolidColorBrush x:Key="WindowBorder"                    Color="#FF646464" />
</ResourceDictionary>

The problem is that, when using the night mode color palette, the background of the selected row in the RadGridView is not the color I chose for the DataBackgroundSelected brush.  That should be a shade of gray; what I'm getting is a light yellow color.  Given that the foreground color is Yellow, there isn't enough contrast and the selected row is hard to read.

My application also uses a row style selector to change the foreground color, so I'm stuck with Yellow as the foreground color.

What do I need to change in my template so I can get the background color I chose for the selected row?  I'm using version 2012.3.1017.40 of the WPF controls library.

By the way, the DataBackgroundSelected brush is also used by the Microsoft DataGrid control and the colors there work fine.  I want all Grid controls to have the same look, so it's important that I get this working properly.

3 Answers, 1 is accepted

Sort by
0
Vlad
Telerik team
answered on 10 Dec 2012, 08:20 AM
Hello,

 Can you clarify where you've assigned this GridViewRow style? Are you using our implicit or explicit themes?

Greetings,
Vlad
the Telerik team

Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.

0
Tony
Top achievements
Rank 1
answered on 10 Dec 2012, 03:42 PM
Vlad:

The style is in the app.xaml and is the default style for the GridViewRow type.  I began developing this application in 2011, so I don't know if I'm using the implicit or explicit styling.  My style does not include an x:Key tag; does this mean I'm using implicit styling?

Also, I'd like to emphasize that this is a WPF application and not Silverlight.

Tony
0
Tony
Top achievements
Rank 1
answered on 11 Dec 2012, 02:38 PM

I've resolved this on my own, quite accidentally.  There are two issues:

 

  1. I discovered that when I set the RowIndicatorVisibility property to Hidden on my RadGridView controls that the problem went away from all but one of the controls in my application. 
  2. The one RadGridView that still had the problem uses a RowStyleSelector class I wrote to choose a style with a different foreground color based upon a simple condition. To fix the problem with that RadGridView, I actually had to make two changes:
    1. I based the styles for the GridViewRow class on the default style in my app.xaml for the GridViewRow class (using the BasedOn XAML attribute for the Style tag).
    2. It seems that, for some reason, the first style specified in the XAML for the custom row style selector would not use the default style I defined for the GridViewRow class in my app.xaml.  Instead, it seems to always use the one defined in the Telerid DLL.  I had to add a third style, named IgnoreThis,and specify that property and a style for it first.  This style is never used, it's just there to work around this problem.

Here's an excerpt from the xaml for my application showing the custom row style selector and the RadGridView declarations:

<UserControl.Resources>
    <cs:AlarmsRowStyleSelector.IgnoreThis>
        <Style BasedOn="{StaticResource {x:Type telerik:GridViewRow}}" TargetType="telerik:GridViewRow" />
    </cs:AlarmsRowStyleSelector.IgnoreThis>
    <cs:AlarmsRowStyleSelector.IsAlarmStyle>
        <Style BasedOn="{StaticResource {x:Type telerik:GridViewRow}}" TargetType="telerik:GridViewRow">
            <Setter Property="Foreground" Value="{DynamicResource AlarmTextForeground}" />
            <Setter Property="Background" Value="{DynamicResource DataBackground}" />
            <Style.Triggers>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="Background" Value="{DynamicResource DataBackgroundSelected}" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </cs:AlarmsRowStyleSelector.IsAlarmStyle>
    <cs:AlarmsRowStyleSelector.NotAlarmStyle>
        <Style BasedOn="{StaticResource {x:Type telerik:GridViewRow}}" TargetType="telerik:GridViewRow">
            <Setter Property="Foreground" Value="{DynamicResource TextForeground}" />
            <Setter Property="Background" Value="{DynamicResource DataBackground}" />
        </Style>
    </cs:AlarmsRowStyleSelector.NotAlarmStyle>
</cs:AlarmsRowStyleSelector>
 
        . . .
 
<telerik:RadGridView AutoExpandGroups="True"
                     AutoGenerateColumns="False"
                     CanUserDeleteRows="False"
                     CanUserFreezeColumns="False"
                     CanUserInsertRows="False"
                     CanUserResizeColumns="True"
                     CanUserSortColumns="True"
                     EnableColumnVirtualization="True"
                     EnableRowVirtualization="True"
                     FontSize="16"
                     FontWeight="Bold"
                     IsBusy="{Binding Path=IsLoadingReads, RelativeSource={RelativeSource AncestorType={x:Type cs:Searcher}}}"
                     IsReadOnly="True"
                     MouseDoubleClick="ReadsGrid_MouseDoubleClick"
                     Name="ReadsGrid"
                     RowIndicatorVisibility="Hidden"
                     RowStyleSelector="{StaticResource StyleSelector}"
                     SelectionChanged="ReadsGrid_SelectionChanged"
                     SelectionUnit="FullRow"
                     ScrollViewer.CanContentScroll="True"
                     ScrollViewer.HorizontalScrollBarVisibility="Auto"
                     ScrollViewer.VerticalScrollBarVisibility="Auto"
                     ShowGroupFooters="True"
                     ToolTip="Matching Reads">
    <telerik:RadGridView.Columns>
        <telerik:GridViewDataColumn DataMemberBinding="{Binding Plate,       Mode=OneWay}"
                                    Header="Plate"
                                    Width="*" />
        <telerik:GridViewDataColumn DataMemberBinding="{Binding State,       Mode=OneWay}"
                                    Header="State"
                                    Width="75" />
        <telerik:GridViewDataColumn DataMemberBinding="{Binding TimeStamp,  Mode=OneWay, Converter={StaticResource DateConverter}}"
                                    Header="Date & Time"
                                    Width="Auto" />
        <telerik:GridViewDataColumn DataMemberBinding="{Binding GPSInformation.Position.Latitude, Mode=OneWay, Converter={StaticResource CoordConverter}, ConverterParameter=NS}"
                                    Header="Latitude"
                                    Width="Auto" />
        <telerik:GridViewDataColumn DataMemberBinding="{Binding GPSInformation.Position.Longitude, Mode=OneWay, Converter={StaticResource CoordConverter}, ConverterParameter=EW}"
                                    Header="Longitude"
                                    Width="Auto" />
        <telerik:GridViewImageColumn DataMemberBinding="{Binding GpsQuality, Mode=OneWay, Converter={StaticResource DeviceStatuses}}"
                                     Header="Gps Quality"
                                     ImageStretch="None"
                                     Width="125" />
    </telerik:RadGridView.Columns>
</telerik:RadGridView>


This now works exactly how I want it to work.  Apparently, the Row Indicator was interfering with my styles.  It also seems that for some reason the Row Indicator never moved off the first row in my controls, even if the user clicked or cursored down to other rows.  It's OK not to have it.

Tony

Tags
GridView
Asked by
Tony
Top achievements
Rank 1
Answers by
Vlad
Telerik team
Tony
Top achievements
Rank 1
Share this question
or