Изменить цвет фона ScrollViewer в DataGrid - PullRequest
1 голос
/ 14 декабря 2011

в моем приложении Silverlight все элементы управления должны быть полностью прозрачными, чтобы можно было увидеть фоновое изображение.В моей реальной работе мне нужно показать данные в DataGrid.После прочтения ответа на вопрос Измените цвет фона заголовка Datagrid в Silverlight , который решил проблему непрозрачного заголовка DataGrid. У меня все еще остается проблема, связанная с тем, что запасной элемент в заголовке ScrollViewer DataGridостанется белым, какой бы стиль я ни применял к ScrollViewer и ScrollBar.Кроме того, горизонтальная полоса прокрутки остается белой.Вот мои настоящие стили для ScrollBar и ScrollViewer (например, в Listbox это работает как шарм).

<ControlTemplate x:Key="ScrollBarControlTemplate" TargetType="ScrollBar">
    <Border BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}">
        <Grid x:Name="Root">
            <Grid x:Name="HorizontalRoot">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="Auto"/>
                </Grid.ColumnDefinitions>
                <RepeatButton x:Name="HorizontalSmallDecrease" Grid.Column="0" Interval="50" Style="{StaticResource RepeatButtonLineLeftStyle}" />
                <RepeatButton x:Name="HorizontalLargeDecrease" Grid.Column="1" Interval="50" Style="{StaticResource RepeatButtonBlankStyle}" />
                <Thumb x:Name="HorizontalThumb" Grid.Column="2" MinWidth="16" Style="{StaticResource ThumbHorizontalStyle}" />
                <RepeatButton x:Name="HorizontalLargeIncrease" Grid.Column="3" Interval="50" Style="{StaticResource RepeatButtonBlankStyle}" />
                <RepeatButton x:Name="HorizontalSmallIncrease" Grid.Column="4" Interval="50" Style="{StaticResource RepeatButtonLineRightStyle}" />
            </Grid>
            <Grid x:Name="VerticalRoot" Visibility="Collapsed">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>
                <RepeatButton x:Name="VerticalSmallDecrease" Grid.Row="0" Interval="50" Style="{StaticResource RepeatButtonLineUpStyle}" />
                <RepeatButton x:Name="VerticalLargeDecrease" Grid.Row="1" Interval="50" Style="{StaticResource RepeatButtonBlankStyle}" />
                <Thumb x:Name="VerticalThumb" Grid.Row="2" MinHeight="16" Style="{StaticResource ThumbVerticalStyle}" />
                <RepeatButton x:Name="VerticalLargeIncrease" Grid.Row="3" Interval="50" Style="{StaticResource RepeatButtonBlankStyle}" />
                <RepeatButton x:Name="VerticalSmallIncrease" Grid.Row="4" Interval="50" Style="{StaticResource RepeatButtonLineDownStyle}" />
            </Grid>
        </Grid>
    </Border>
</ControlTemplate>

<Style x:Key="ScrollBarStyle" TargetType="ScrollBar">
    <Setter Property="MinWidth" Value="12" />
    <Setter Property="MinHeight" Value="12" />
    <Setter Property="IsTabStop" Value="False"/>
    <Setter Property="Template" Value="{StaticResource ScrollBarControlTemplate}" />
</Style>

<Style BasedOn="{StaticResource ScrollBarStyle}" TargetType="ScrollBar" />
<Style BasedOn="{StaticResource ScrollViewerStyle}" TargetType="ScrollViewer" />

У меня заканчиваются идеи, может быть, кто-то может мне помочь!?

Чтобы дать вам более четкое представление о моей проблеме, вот как она выглядит на данный момент:

BothScrollBars

...