少し問題があります。スクロールバーを使用して、stackPanel 内にビューを配置したいと考えています。基本的に、これは私がこれをやろうとする方法です:
<DataTemplate x:Key="FirstTemplate">
<vw:FirstView DataContext="{Binding}"></vw:FirstView>
</DataTemplate>
<DataTemplate x:Key="SecondTemplate">
<vw:SecondView DataContext="{Binding}"></vw:SecondView>
</DataTemplate>
<DataTemplate x:Key="ThirdTemplate">
<vw:ThirdView DataContext="{Binding}"></vw:ThirdView>
</DataTemplate>
<selector:DimensionTemplateSelector x:Key="SomeTemplateSelector"
FirstTemplate="{StaticResource FirstTemplate}"
SecondTemplate="{StaticResource SecondTemplate}"
ThirdTemplate="{StaticResource ThirdTemplate}">
</selector:DimensionTemplateSelector>
<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<StackPanel>
<ContentControl ContentTemplateSelector="{StaticResource SomeTemplateSelector}"
Content="{Binding ASelectedValue}" />
</StackPanel>
</ScrollViewer>
このコードの問題は、マウスがスクロールバー ゾーン上にある場合にのみ、マウス ホイールでスクロールできることです。マウスが stackPanel 内 (つまり、ScrollViewer タグ内) にあり、スクロールバー ゾーンの真上にない場合、マウス ホイールでスクロールしようとしても何も起こりません。
よくわかりませんが、スクロールを処理できるように contentControl に動作を定義する必要があるようです。誰でもそれを行う方法を知っているか、より良い説明がありますか?
ありがとうございました