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>

これは明らかに機能しません (期待もされていませんでした) が、... それは私が達成したいことのコンセプトを伝えています。実行時にツリーに到達して、実行時に祖先の依存関係を操作するが、それらが 1 つのビューにまとめられている別々の UserControl にある可能性がある場合でも、要素を直接ターゲットにすることはできません。

Loaded イベントで Storyboard をスローして、DoubleAnimation やその他の試みでプロパティを変更しようとしましたが、これまでのところ理解できる喜びはありませんが、とにかくスキルセットを改善するという名前だけです。私は純粋に XAML を使用してそれを達成しようとしていますが、これは、別のペアの目で別のルートを提供できるものの 1 つに過ぎないと確信しています。

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 に答える