![](/img/trans.png)
[英]C# WPF horizontal scrollbar for ScrollViewer RepeatButtons only on either side of contents
[英]WPF ScrollViewer - Align Horizontal Scrollbar to top?
我想知道是否可以將ScrollViewer控件中的水平Scrollbar停靠在頂部,而不是停在底部? 如果不是,是否可以使用放置在ScrollViewer上方的整個單獨的Scrollbar控件,並以某種方式為其分配ScrollBar_Scroll事件?
提前致謝!
當然-這是ScrollViewer
的默認模板,修改后的默認模板可以轉置網格第0行和網格第1行,從而將水平滾動條放在頂部:
<ControlTemplate x:Key="ScrollViewerHorizontalOnTopTemplate" TargetType="{x:Type ScrollViewer}">
<Grid x:Name="Grid" Background="{TemplateBinding Background}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MinHeight="17"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Rectangle x:Name="Corner"
Fill="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
Grid.Column="1" Grid.Row="0"/>
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter" Margin="{TemplateBinding Padding}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" Grid.Column="0" Grid.Row="1" CanContentScroll="{TemplateBinding CanContentScroll}" CanHorizontallyScroll="False" CanVerticallyScroll="False"/>
<ScrollBar x:Name="PART_VerticalScrollBar"
Cursor="Arrow"
Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
Grid.Column="1" Grid.Row="1"
AutomationProperties.AutomationId="VerticalScrollBar"
Maximum="{TemplateBinding ScrollableHeight}"
Minimum="0"
Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
ViewportSize="{TemplateBinding ViewportHeight}"/>
<ScrollBar x:Name="PART_HorizontalScrollBar"
Cursor="Arrow"
Grid.Column="0"
AutomationProperties.AutomationId="HorizontalScrollBar"
Maximum="{TemplateBinding ScrollableWidth}"
Minimum="0"
Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
Orientation="Horizontal"
ViewportSize="{TemplateBinding ViewportWidth}"/>
</Grid>
</ControlTemplate>
將此模板應用於ScrollViewer
,您應該已經准備ScrollViewer
。
Expression Blend使這樣的任務變得微不足道-我推薦它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.