禁用的WPF滚动查看器可以滚动吗?

时间:2015-09-25 04:13:44

标签: .net wpf xaml scrollviewer

该方案是一个禁用的控件,因为用户不应进行更改。在此控件内部是ScrollViewer(以及其他控件),当父级被禁用时,它无法滚动。理想情况下,用户应该能够滚动此滚动查看器,以便他们可以看到其内容(内容应保持禁用状态)。

只是想知道是否有一些简单的xaml可以让一个禁用的scrollview可以滚动?

1 个答案:

答案 0 :(得分:0)

覆盖应用程序的Application_Startup事件中的元数据,如下所示:

ScrollViewer.IsEnabledProperty.OverrideMetadata(typeof(ScrollViewer), new UIPropertyMetadata(true, new PropertyChangedCallback(ScrollViewer_IsEnabledPropertyChanged), new CoerceValueCallback(ScrollViewerForceEnabled)));

处理CoerceValueCallback以始终返回true,如下所示:

private static void ScrollViewer_IsEnabledPropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs args) { }
private static object ScrollViewerForceEnabled(DependencyObject source, object value)
{
    return true;
}