0

私は WPF を使用しており、ScrollViewer を持っていて、スクロールバーの水平方向の動きを検出したいと考えています。

これを見つけましたが、C# コードでどのように使用できるかわかりません。

http://msdn.microsoft.com/en-us/library/system.windows.forms.scrolleventargs.scrollorientation%28v=vs.85%29.aspx

ScrollViewer を別の目的で使用しているため、ダブルクリックまたはクリックを検出したくありません。

 <ScrollViewer x:Name="coordinateScroll" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Margin="75,0,0,0" Width="1125" Height="750" Background="Transparent" MouseWheel="coordinateSystemBackground_MouseWheel" MouseDoubleClick="coordinateScroll_MouseDoubleClick " ScrollChanged="coordinateScroll_ScrollChanged" >
                    <Canvas x:Name="coordinateSystem" HorizontalAlignment="Left" VerticalAlignment="Top" Cursor="Cross" UseLayoutRounding="False"  Width="1125" Height="720" Background="Transparent" MouseWheel="coordinateSystemBackground_MouseWheel" >
                    </Canvas>
                </ScrollViewer>
4

1 に答える 1

1

coordinateScroll_ScrollChangedXAML にあるイベントの何が問題になっていますか?

このハンドラーには、プロパティを持つイベント引数がありoffsetます。

 private void coordinateScroll_ScrollChanged(object sender, ScrollChangedEventArgs e)
 {
    var status = "ExtentHeight is now " + e.ExtentHeight.ToString();
    status += "\nExtentWidth is now " + e.ExtentWidth.ToString();
    status += "\nExtentHeightChange was " + e.ExtentHeightChange.ToString();
    status += "\nExtentWidthChange was " + e.ExtentWidthChange.ToString();
    status += "\nHorizontalOffset is now " + e.HorizontalOffset.ToString();
    status += "\nVerticalOffset is now " + e.VerticalOffset.ToString();
    status += "\nHorizontalChange was " + e.HorizontalChange.ToString();
    status += "\nVerticalChange was " + e.VerticalChange.ToString();
    MessageBox.Show(status);
}
于 2013-06-11T13:45:03.147 に答える