簡體   English   中英

光標后的UWP放大鏡控件(工具)

[英]UWP Magnifier control (tool) that follows cursor

我現在正在做一個作業,被要求創建一個應用程序來選擇圖像上的區域,並能夠放大光標周圍圖像的一部分。

現在我卡在放大鏡部分。 WPF中有一個放大鏡控件,但是UWP呢? 有沒有人有過在UWP中創建放大鏡的經驗?

到目前為止,我已經找到了,但是UWP具有不同的API: http : //csharphelper.com/blog/2015/06/zoom-and-crop-a-picture-in-c/

我的邏輯是:1.在光標周圍繪制一個圓圈,並在每次光標移動時重新繪制。 2.截取屏幕快照(渲染)指定區域3.放大區域4.用放大的圖像(位圖)填充圓圈

任何提示或建議將不勝感激。 謝謝

  1. 圍繞光標繪制一個圓圈,並在每次光標移動時重新繪制。

您可以為面板(例如Canvas)注冊PointerMoved事件,並使用以下方法獲取當前指針:

private void Canvas_PointerMoved(object sender, PointerRoutedEventArgs e)
{
    var pointer = e.GetCurrentPoint(sender as UIElement);
}

然后,您可以在其上添加一個Ellipse並通過當前指針設置其位置。

  1. 截取屏幕快照(渲染)指定區域

您可以使用RenderTargetBitmap類API來渲染特定區域。

  1. 放大

您可以調整rendertargetbitmap的大小。 檢查此線程如何調整RenderTargetBitmap的大小

  1. 用放大的圖像(位圖)填充圓圈

在獲得最終的rendertargetbitmap之后,可以使用它制作一個ImageBrush ,然后可以將此ImageBrush指定給Ellipse的Fill屬性,如下所示:

ellipse.Fill = new ImageBrush() { ImageSource = renderTargetBitmap};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM