【发布时间】:2013-02-15 21:53:56
【问题描述】:
当光标位于 WPF 中的某个元素上时,我想禁用滚动。
如果鼠标在红色矩形上,滚动应该被禁用。 红色矩形在滚动查看器上。
有什么想法吗?
【问题讨论】:
当光标位于 WPF 中的某个元素上时,我想禁用滚动。
如果鼠标在红色矩形上,滚动应该被禁用。 红色矩形在滚动查看器上。
有什么想法吗?
【问题讨论】:
我让它与这段代码一起工作:
<Window.Resources>
<converter:MouseOverToScrollBarVisibility x:Key="scrollVisibility" />
</Window.Resources>
<ScrollViewer VerticalScrollBarVisibility="{Binding IsMouseOver,
ElementName=rec,
Converter={StaticResource scrollVisibility}}">
<Rectangle Height="50" Width="50" Fill="Red" x:Name="rec"/>
</ScrollViewer>
然后定义这个转换器:
[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.Hidden : ScrollBarVisibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
}
【讨论】:
ScrollBarVisibility.Disabled 而不是 ScrollBarVisibility.Hidden。