2

今天想学习一些新东西,并希望有人能用一种优雅的方式在 XAML 中完成这项工作。

因此,对于这个概念,请看下面的例子;

<Grid>

   <ScrollViewer VerticalScrollbarVisibility="Auto">

      <Grid>
         <Grid.Resources>
           <Style TargetType="{RelativeSource Mode=FindAncestor, AncestorType=ScrollViewer}">
              <Setter Property="VerticalScrollbarVisibility" Value="Disabled"/>
           </Style>
         </Grid.Resources>
      </Grid>

   </ScrollViewer>

</Grid>

这显然行不通(也没有预料到),但是......它传达了我想要完成的概念。到达树以在运行时操作祖先依赖项,但无法直接定位元素,即使它们可能位于单独的 UserControl 中并被放在一个视图中。

我尝试在 Loaded 事件中抛出 Storyboard 以使用 DoubleAnimation 和其他一些尝试来更改属性,但到目前为止没有任何乐趣,这是可以理解的,但这一切都只是以提高技能的名义。我正在尝试完全使用 XAML 来完成它,我相信这只是另一双眼睛可以提供不同途径的其中之一。

4

1 回答 1

3

我不确定为什么您的故事板方法不起作用(可能是因为 VerticalScroll B arVisibility 中的拼写错误?

该方法的一种变体是ChangePropertyAction在 Loaded 事件内部使用。我可以确认这可以禁用滚动条:

  <Grid>
     <i:Interaction.Triggers>
         <i:EventTrigger EventName="Loaded">
             <ei:ChangePropertyAction 
                 TargetObject="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ScrollViewer}}"
                 PropertyName="VerticalScrollBarVisibility"
                 Value="Disabled"
             />
         </i:EventTrigger>
     </i:Interaction.Triggers>
  </Grid>

于 2014-07-08T00:37:22.210 回答