ホームページ > バックエンド開発 > C++ > カスタム コントロールを使用して WPF でパンとズームのイメージ ビューアーを作成する方法

カスタム コントロールを使用して WPF でパンとズームのイメージ ビューアーを作成する方法

Susan Sarandon
リリース: 2025-01-18 13:27:09
オリジナル
214 人が閲覧しました

How to Create a Pan and Zoom Image Viewer in WPF Using a Custom Control?

WPF 画像のパンとズームのカスタム コントロール

WPF では、画像のパン、ズーム、オーバーレイ表示、元の画像の表示などの機能を実現するための基本的な画像ビューアを作成するためのさまざまな方法が提供されています。 ViewBoxImageBrush などの組み込みコントロールはこれらの機能を支援しますが、この記事ではカスタム コードの実装についてガイドし、その仕組みをよりよく理解します。

カスタマイズされた ZoomBorder コントロール

パンとズームを処理するには、ZoomBorder というカスタム コントロールを作成します。このクラスは、画像変換のロジックをカプセル化します。

ZoomBorder の実装

ZoomBorder コントロールは、UIElement を子要素として使用し、変換を適用してスケーリングとパンを実現します。このコードでは、マウス ホイール、左ボタンのドラッグ、およびマウスの動きのイベント ハンドラーを定義して、これらの機能を実装します。

メインウィンドウで

使用

MainWindow ウィンドウでは、ZoomBorder を使用して画像を表示および操作できます。 ZoomBorderChild 属性は、表示したい画像に設定する必要があります。

スケーリングアルゴリズム

child_MouseWheel イベント ハンドラーのスケーリング アルゴリズムは、マウス ホイールの増分に基づいてスケーリング係数を計算し、それを画像の ScaleTransform に適用します。また、TranslateTransform を調整して、マウス ポインタを基準とした移動位置を維持します。

翻訳アルゴリズム

child_MouseLeftButtonDown および child_MouseMove イベント ハンドラーはパンを処理します。ユーザーが左クリックしてドラッグすると、画像の TranslateTransform が更新され、それに応じて画像が移動します。

リセットボタンの実装

リセット ボタンを含めるには、ボタンを MainWindow に追加し、そのクリック イベントを処理して ZoomBorderReset メソッドを呼び出します。

概要

WPF でカスタマイズ ZoomBorder を実装すると、パンとズーム機能を備えたシンプルだが効率的な画像ビューアを作成できます。このアプローチにより、ViewBox などの事前定義されたコントロールを使用するよりも、ユーザー エクスペリエンスに対する柔軟性と制御が向上します。

以上がカスタム コントロールを使用して WPF でパンとズームのイメージ ビューアーを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート