我正在使用我们使用标准ControlTemplates创建的自定义Scrollbars,但是当我将它们应用到ListBox时,右下角有一个角落,我无法找到任何覆盖方式。
不幸的是,在我获得更多积分之前,我无法发布图片。但是我指的是当垂直和水平滚动条都出现的时候,右下方有一个空间,里面充满了一种灰白色的颜色,我无法消除
我正在使用我们使用标准ControlTemplates创建的自定义Scrollbars,但是当我将它们应用到ListBox时,右下角有一个角落,我无法找到任何覆盖方式。
不幸的是,在我获得更多积分之前,我无法发布图片。但是我指的是当垂直和水平滚动条都出现的时候,右下方有一个空间,里面充满了一种灰白色的颜色,我无法消除
这是我使用Blend为ScrollViewer获取的模板代码的一部分。我在右下角添加了一个矩形,并将填充设置为红色。您可以使用相同的方式设置样式,也可以使用Grid.RowSpan =“2”表示VerticalScrollBar(第一个)或Grid.ColumnSpan =“2”表示HorizontalScrollBar(第二个),以展开其中一个ScrollBar。
<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 Name="PART_VerticalScrollBar" Grid.Row="0" Grid.Column="1" Value="{TemplateBinding VerticalOffset}" Maximum="{TemplateBinding ScrollableHeight}" ViewportSize="{TemplateBinding ViewportHeight}" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
<ScrollBar 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>
有两件事可能会有所帮助:
1)使用 史努比 要探索应用程序的元素树,这可能有助于找到问题。
2)根据您启动控件的方式,您可以考虑从标准ListBox的副本开始。当我从空模板或部分模板开始样式时,我发现了某些控件的问题。
希望有所帮助