【问题标题】:How to enable scroll for nested controls when parent is disabled?禁用父级时如何为嵌套控件启用滚动?
【发布时间】:2011-04-21 19:25:03
【问题描述】:

我在面板中有很多嵌套控件,我想禁用所有这些控件,但启用滚动。基本上,我使用绑定将根元素(面板)的 IsEnabled 属性设置为 false。但这也会禁用滚动。有什么想法(除了将 IsEnabled 添加到每个控件之外)?我正在使用 MVVM。

所以,在代码中它看起来像这样:

<Grid IsEnabled="{Binding IsControlEnabled}"> 
  <StackPanel>
    <.../>
    <CustomControl/>
    <.../>
  </StackPanel>
</Grid>

CustomControl 也是复杂控件,例如,&lt;ListBox&gt;&lt;Scrollviewer&gt; 中。 我的观点是让用户可以在IsControlEnabled == false 时滚动ListBox 中的项目。

【问题讨论】:

    标签: silverlight data-binding mvvm scroll scrollviewer


    【解决方案1】:

    您可以在父控件之外添加滚动条并同步两个滚动条。查看this project for automatic Scroll Synchronization

    【讨论】:

      【解决方案2】:

      如果您要禁用包含控件的父控件,每个控件都有一个滚动查看器,这是您的问题。您需要禁用每个控件,而不是更改父容器控件。

      查看示例:

       <Grid x:Name="LayoutRoot"
            Background="White">
          <ScrollViewer Height="50">
              <Button IsEnabled="False"
                      Height="100" />
      
          </ScrollViewer>
      </Grid>
      

      祝福,

      杰夫

      【讨论】:

      • 他说“除了将 IsEnabled 添加到每个控件之外”
      猜你喜欢
      • 2010-09-15
      • 2017-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多