希望今天学到新东西,并希望有人能够在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来完成它,我相信它只是其中之一,另一双眼睛可以提供不同的路径。
答案 0 :(得分:3)
我不确定为什么你的故事板方法不起作用(可能是因为VerticalScroll中的拼写错误 B arVisibility?。
该方法的一个变体是在Loaded事件中使用ChangePropertyAction
。我可以确认这可以禁用滚动条:
<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>