Wpf 是否更改鼠标悬停时DataGrid滚动条的可见性?
如何在DataGrid的IsMouseOver属性上切换DataGrid滚动条的可见性Wpf 是否更改鼠标悬停时DataGrid滚动条的可见性?,wpf,datagrid,scrollbar,visibility,Wpf,Datagrid,Scrollbar,Visibility,如何在DataGrid的IsMouseOver属性上切换DataGrid滚动条的可见性 我想让滚动条在鼠标悬停在DataGrid上时可见,在鼠标离开DataGrid时不可见。如能提供XAML示例,将不胜感激。创建一个值转换器: [ValueConversion(typeof(bool), typeof(ScrollBarVisibility))] sealed class MouseOverToScrollBarVisibility : IValueConverter { public
我想让滚动条在鼠标悬停在DataGrid上时可见,在鼠标离开DataGrid时不可见。如能提供XAML示例,将不胜感激。创建一个值转换器:
[ValueConversion(typeof(bool), typeof(ScrollBarVisibility))]
sealed class MouseOverToScrollBarVisibility : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return ((bool)value) ? ScrollBarVisibility.Auto : ScrollBarVisibility.Hidden;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
}
在参考资料中的某个地方声明它:
<Window.Resources>
<local:MouseOverToScrollBarVisibility x:Key="MouseOverToScrollBarVisibility" />
</Window.Resources>
我会采用一种新的风格,比如:
<Style x:Key="dataGridStyle" TargetType={x:Type DataGrid}>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Hidden"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
</Trigger>
</Style.Triggers>
</Style>
到目前为止,这是最好的解决方案,我个人更喜欢XAML解决方案,而不是代码隐藏解决方案。谢谢
<Style x:Key="dataGridStyle" TargetType={x:Type DataGrid}>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Hidden"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
</Trigger>
</Style.Triggers>
</Style>