WPF では、画像のパン、ズーム、オーバーレイ表示、元の画像の表示などの機能を実現するための基本的な画像ビューアを作成するためのさまざまな方法が提供されています。 ViewBox
や ImageBrush
などの組み込みコントロールはこれらの機能を支援しますが、この記事ではカスタム コードの実装についてガイドし、その仕組みをよりよく理解します。
パンとズームを処理するには、ZoomBorder
というカスタム コントロールを作成します。このクラスは、画像変換のロジックをカプセル化します。
ZoomBorder
コントロールは、UIElement
を子要素として使用し、変換を適用してスケーリングとパンを実現します。このコードでは、マウス ホイール、左ボタンのドラッグ、およびマウスの動きのイベント ハンドラーを定義して、これらの機能を実装します。
MainWindow
ウィンドウでは、ZoomBorder
を使用して画像を表示および操作できます。 ZoomBorder
の Child
属性は、表示したい画像に設定する必要があります。
child_MouseWheel
イベント ハンドラーのスケーリング アルゴリズムは、マウス ホイールの増分に基づいてスケーリング係数を計算し、それを画像の ScaleTransform
に適用します。また、TranslateTransform
を調整して、マウス ポインタを基準とした移動位置を維持します。
child_MouseLeftButtonDown
および child_MouseMove
イベント ハンドラーはパンを処理します。ユーザーが左クリックしてドラッグすると、画像の TranslateTransform
が更新され、それに応じて画像が移動します。
リセット ボタンを含めるには、ボタンを MainWindow
に追加し、そのクリック イベントを処理して ZoomBorder
の Reset
メソッドを呼び出します。
WPF でカスタマイズ ZoomBorder
を実装すると、パンとズーム機能を備えたシンプルだが効率的な画像ビューアを作成できます。このアプローチにより、ViewBox
などの事前定義されたコントロールを使用するよりも、ユーザー エクスペリエンスに対する柔軟性と制御が向上します。
以上がカスタム コントロールを使用して WPF でパンとズームのイメージ ビューアーを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。