в моем приложении 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