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中文網其他相關文章!