本文介绍了WPF DataGrid中的自定义ScrollBar的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在我的WPF应用程序中为DataGrid制作一个自定义ScrollBar。 以下是理想的观点: postimg/ image / dy6j6c3y9 / [ ^ ] 我现在拥有的: postimg/image/jtzhxkhbp/ [ ^ ] 当前样式的XAML代码:
Hi, I want to make a custom ScrollBar for DataGrid in my WPF application. Here is the desired view: postimg/image/dy6j6c3y9/[^] What I have now: postimg/image/jtzhxkhbp/[^] The current XAML code for style:
<Style x:Key="ScrollThumbs" TargetType="{x:Type Thumb}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Thumb}"> <Grid x:Name="Grid"> <Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Height="Auto" Fill="Transparent" /> <Border x:Name="Rectangle1" CornerRadius="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Height="Auto" removed="{StaticResource GreenBackColor}" /> </Grid> <ControlTemplate.Triggers> <Trigger Property="Tag" Value="Horizontal"> <Setter TargetName="Rectangle1" Property="Width" Value="Auto" /> <Setter TargetName="Rectangle1" Property="Height" Value="7" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}"> <Setter Property="Stylus.IsFlicksEnabled" Value="false" /> <Setter Property="Foreground" Value="#8C8C8C" /> <Setter Property="Background" Value="{StaticResource GrayBackColor}" /> <Setter Property="Width" Value="8" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ScrollBar}"> <Grid x:Name="GridRoot" Width="8" removed="{TemplateBinding Background}"> <Grid.RowDefinitions> <RowDefinition Height="0.00001*" /> </Grid.RowDefinitions> <Track x:Name="PART_Track" Grid.Row="0" IsDirectionReversed="true" Focusable="false"> <Track.Thumb> <Thumb x:Name="Thumb" removed="{TemplateBinding Foreground}" Style="{DynamicResource ScrollThumbs}" /> </Track.Thumb> <Track.IncreaseRepeatButton> <RepeatButton x:Name="PageUp" Command="ScrollBar.PageDownCommand" Opacity="0" Focusable="false" /> </Track.IncreaseRepeatButton> <Track.DecreaseRepeatButton> <RepeatButton x:Name="PageDown" Command="ScrollBar.PageUpCommand" Opacity="0" Focusable="false" /> </Track.DecreaseRepeatButton> </Track> </Grid> <ControlTemplate.Triggers> <Trigger SourceName="Thumb" Property="IsMouseOver" Value="true"> <Setter Value="{DynamicResource ButtonSelectBrush}" TargetName="Thumb" Property="Background" /> </Trigger> <Trigger SourceName="Thumb" Property="IsDragging" Value="true"> <Setter Value="{DynamicResource DarkBrush}" TargetName="Thumb" Property="Background" /> </Trigger> <Trigger Property="IsEnabled" Value="false"> <Setter TargetName="Thumb" Property="Visibility" Value="Collapsed" /> </Trigger> <Trigger Property="Orientation" Value="Horizontal"> <Setter TargetName="GridRoot" Property="LayoutTransform"> <Setter.Value> <RotateTransform Angle="-90" /> </Setter.Value> </Setter> <Setter TargetName="PART_Track" Property="LayoutTransform"> <Setter.Value> <RotateTransform Angle="-90" /> </Setter.Value> </Setter> <Setter Property="Width" Value="Auto" /> <Setter Property="Height" Value="8" /> <Setter TargetName="Thumb" Property="Tag" Value="Horizontal" /> <Setter TargetName="PageDown" Property="Command" Value="ScrollBar.PageLeftCommand" /> <Setter TargetName="PageUp" Property="Command" Value="ScrollBar.PageRightCommand" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="ScrollBarPageButton" TargetType="{x:Type RepeatButton}"> <Setter Property="SnapsToDevicePixels" Value="True"/> <Setter Property="OverridesDefaultStyle" Value="true"/> <Setter Property="IsTabStop" Value="false"/> <Setter Property="Focusable" Value="false"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type RepeatButton}"> <Polygon Points="0,0 0,6, 0,10" Stroke="Black" Fill="Black" /> </ControlTemplate> </Setter.Value> </Setter> </Style> 推荐答案 Hi... codeoverload.wordpress/2011/11/26/custom-scrollbars-in-wpf/[^] WPF DataGrid Custommization using Style and Template[^] Thank u. Hi... codeoverload.wordpress/2011/11/26/custom-scrollbars-in-wpf/[^] WPF DataGrid Custommization using Style and Template[^] Thank u. You can try this : Styling A ScrollViewer/Scrollbar In WPF[^] & msdn.microsoft/en-us/library/ms742173(v=vs.110).aspx[ ^ ] You can try this : Styling A ScrollViewer/Scrollbar In WPF[^] & msdn.microsoft/en-us/library/ms742173(v=vs.110).aspx[^]
更多推荐
WPF DataGrid中的自定义ScrollBar
发布评论