我正在使用我们使用标准ControlTemplates创建的自定义滚动条,但是当我将它们应用于ListBox时,右下角有一个角落,我无法找到任何方法重写。无法完全设计WPF中的列表框/滚动查看器
不幸的是,我不能发布图片,直到我得到更多的积分。但是我所指的角落是当一个垂直和水平滚动条出现时,右下角有一个填充了灰白色的空间,我无法选择它
我正在使用我们使用标准ControlTemplates创建的自定义滚动条,但是当我将它们应用于ListBox时,右下角有一个角落,我无法找到任何方法重写。无法完全设计WPF中的列表框/滚动查看器
不幸的是,我不能发布图片,直到我得到更多的积分。但是我所指的角落是当一个垂直和水平滚动条出现时,右下角有一个填充了灰白色的空间,我无法选择它
这是模板代码我使用混合得到了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>
它确实有效。但我碰巧发现执行性能呈线性急剧下降。以显示7000项(相对简单和轻量级项目)过去需要1-2秒,但这种方法可能高达15-19秒。我想知道在哪里放慢渲染性能。 – 2014-11-06 06:14:31
你可以添加你的模板代码......它可能有助于回答这个问题。 – 2009-12-22 16:09:31