我在面板中有很多嵌套控件,我想要禁用所有这些控件,但是启用了滚动。基本上,我使用绑定将根元素(面板)的IsEnabled属性设置为false。但这也会禁用滚动。任何想法(除了向每个控件添加IsEnabled)?我正在使用MVVM。
所以,在代码中它看起来像这样:
<Grid IsEnabled="{Binding IsControlEnabled}">
<StackPanel>
<.../>
<CustomControl/>
<.../>
</StackPanel>
</Grid>
CustomControl也是复杂的控件,例如<ListBox>
中有<Scrollviewer>
。
我的观点是,当ListBox
时,用户可以在IsControlEnabled == false
中滚动项目。
答案 0 :(得分:0)
您可以在父Control之外添加ScrollBar并同步两个滚动条。查看this project for automatic Scroll Synchronization
答案 1 :(得分:-1)
如果要禁用包含每个都有滚动查看器的控件的父控件,这就是您的问题。您需要禁用每个控件,而不是更改父容器控件。
参见示例:
<Grid x:Name="LayoutRoot"
Background="White">
<ScrollViewer Height="50">
<Button IsEnabled="False"
Height="100" />
</ScrollViewer>
</Grid>
祝福,
杰夫