我正在使用我們使用標準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