我有一个带有 ScrollViewer 的应用程序。两个滚动条相遇的地方是一个令人讨厌的小方块(见下面的图片),我正在尝试摆脱它。当我“窥探”应用程序时,我可以发现它是一个“矩形”,但我假设它是 ScrollViewer 的一部分?
我已经搜索并搜索了有关此的任何信息,但我所能找到的只是通过在其顶部放置一些东西来隐藏它的建议:s
谁能指出我正确的方向来解决这个问题?
<ControlTemplate x:Key="HorizontalScrollBar"
TargetType="{x:Type ScrollBar}">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition MaxWidth="18"/>
<ColumnDefinition Width="0.00001*"/>
<ColumnDefinition MaxWidth="18"/>
</Grid.ColumnDefinitions>
<Border
Grid.ColumnSpan="3"
CornerRadius="2"
Background="Transparent" />
<RepeatButton
Grid.Column="0"
Style="{StaticResource ScrollBarLineButton}"
Width="18"
Command="ScrollBar.LineLeftCommand"
Content="M 4 0 L 4 8 L 0 4 Z" />
<Track
Name="PART_Track"
Grid.Column="1"
IsDirectionReversed="False">
<Track.DecreaseRepeatButton>
<RepeatButton
Style="{StaticResource ScrollBarPageButton}"
Command="ScrollBar.PageLeftCommand" />
</Track.DecreaseRepeatButton>
<Track.Thumb>
<Thumb
Style="{StaticResource ScrollBarThumb}"
Margin="0,1,0,1"
Background="{DynamicResource NormalBrush}"
BorderBrush="{DynamicResource NormalBorderBrush}" />
</Track.Thumb>
<Track.IncreaseRepeatButton>
<RepeatButton
Style="{StaticResource ScrollBarPageButton}"
Command="ScrollBar.PageRightCommand" />
</Track.IncreaseRepeatButton>
</Track>
<RepeatButton
Grid.Column="3"
Style="{StaticResource ScrollBarLineButton}"
Width="18"
Command="ScrollBar.LineRightCommand"
Content="M 0 0 L 4 4 L 0 8 Z"/>
</Grid>
</ControlTemplate>
我刚刚遇到了完全相同的问题,但在 Stack 上找到了这个答案来为我解决:
无法在 WPF 中完全设置列表框/滚动查看器的样式 https://stackoverflow.com/questions/1944633/cant-fully-style-a-listbox-scrollviewer-in-wpf
虽然that解决方案does用一些东西代替正方形,它是在 ControlTemplate 中完成的(滚动浏览器,而不是 ScrollBar),而不是通过一些泡泡糖修补方法将某些东西放在 ScrollViewer 之上control.
然而,我发现,通过完全省略该模板中的 Rectangle 定义,烦人的角正方形就会消失 - 即该区域呈现 ScrollViewer 的任何背景颜色(在给出的示例中,它是透明的 - 并且很适合我。如果你想设置ScrollViewer背景的颜色,只需设置Grid的Background属性即可)。
因此,请尝试将其添加到您的资源中:
<Style TargetType="{x:Type ScrollViewer}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollViewer}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ScrollContentPresenter Grid.Column="0" />
<ScrollBar x:Name="PART_VerticalScrollBar" Grid.Row="0" Grid.Column="1" Value="{TemplateBinding VerticalOffset}" Maximum="{TemplateBinding ScrollableHeight}" ViewportSize="{TemplateBinding ViewportHeight}" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
<ScrollBar x:Name="PART_HorizontalScrollBar" Orientation="Horizontal" Grid.Row="1" Grid.Column="0" Value="{TemplateBinding HorizontalOffset}" Maximum="{TemplateBinding ScrollableWidth}" ViewportSize="{TemplateBinding ViewportWidth}" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"/>
<!--<Rectangle Grid.Row="1" Grid.Column="1" Fill="Red"/>-->
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)