更改 DataGrid 中 ScrollViewer 的背景颜色
在我的 Silverlight 应用程序中,所有控件都必须完全透明,以便可以看到背景图像。在我的实际工作中,我需要在 DataGrid 中显示数据。阅读问题的答案更改Silverlight中Datagrid标题的背景颜色< /a> 解决了 DataGrid 的不透明标题的问题 我仍然有一个问题,即 DataGrid 的 ScrollViewer 标题中的备用部分将保持白色,无论我应用于 ScrollViewer 和滚动条。此外,水平滚动条保持白色。这是我的 ScrollBar 和 ScrollViewer 的实际样式(例如,在列表框中,这就像一个魅力)。
<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" />
我没有想法了,也许有人可以帮助我!?
为了让您更清楚地了解我的问题,目前的情况如下:
in my Silverlight Application all controls must be completely transparent so that the Background Image can be seen. In my actual work I need to show data in a DataGrid. After reading the answer to the question Change background color of Datagrid Header in Silverlight that solved the problem of the non transparent Header of the DataGrid I still have the problem that the spare in the Header of the ScrollViewer of the DataGrid will stay white, whatever style I apply to the ScrollViewer and the ScrollBar. Furthermore the horizontal ScrollBar stays white. Here are my actual styles for the ScrollBar and the ScrollViewer (eg in the Listbox this works like a charme).
<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" />
I'm running out of ideas, maybe someone can help me!?
To give you a more clear idea of my problem, here is what it looks like at the moment:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论