DataGrid의 IsMouseOver 속성에서 DataGrid 스크롤 막대의 가시성을 토글 할 수 있습니까? DataGrid 위로 마우스를 움직일 때 ScrollBar 보이게하고 DataGrid 밖으로 마우스를 이동할 때 보이지 않게하려고합니다. XAML 예가 인정 될 것입니다.마우스에서 DatGrid ScrollBar 가시성 변경?
<Window.Resources>
<local:MouseOverToScrollBarVisibility x:Key="MouseOverToScrollBarVisibility" />
</Window.Resources>
을 그리고 ScrollViewer.VerticalScrollBarVisibility
부동산 재산 IsMouseOver
에 바인딩을 사용합니다 :
[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();
}
}
자원에 어딘가에 선언 :
<DataGrid ScrollViewer.VerticalScrollBarVisibility=
"{Binding IsMouseOver,
RelativeSource={RelativeSource Self},
Converter={StaticResource MouseOverToScrollBarVisibility}}">
</DataGrid>
저는 최상의 솔루션이며 코드 숨김 솔루션보다 개인적으로 XAML 솔루션을 선호합니다. 감사! –