簡體   English   中英

如何獲得與鼠標位置相關的坐標位置?

[英]How to get the position of a Coordinate with respect to Mouse position?

我在Wpf上,我有一個坐標列表,我在Bitmap Image上繪制它們。 我的位圖文件是1000 * 1000 ,它被填充到680 * 440圖像控件中。 現在我想要完成的是當鼠標移動我的圖像時突出顯示鼠標光標附近的坐標。

MouseMove()事件處理程序上,我調用此函數並將相對於Image控件的鼠標位置傳遞給它:

public void HighLightNearbyDots(Point MousePosition)
{
    int Distance;
    CoordPoint temp = new CoordPoint();
    temp.X = MousePosition.X;
    temp.Y = MousePosition.Y;

    foreach (var point in myDisplayedCoords)
    {
        Distance = (int)(temp - point); // using subtraction operator that I wrote

        if (Distance < 10)
        {
            point.Color = Colors.Blue;
        }
        else
        {
            point.Color = InitialCoordColor; // Aqua
        }
    }

    DrawImage();
}

是的我在每次通話時重繪我的圖像以反映更改。 也許問題是我需要縮放或計算1000 * 1000文件大小和680 * 440控件大小之間的某個比例以達到確切像素。但我不確定是什么問題。 以下是自上午以來殺死我的當前結果。 任何人都可以幫我解決這個問題嗎?

在此輸入圖像描述

基於此如何縮放坐標系? 現在我們知道了這個等式。 然后我這樣使用它:

int Distance;
CoordPoint temp = new CoordPoint();
temp.X = MousePosition.X / 660 * Bitmap.Width;
temp.Y = Bitmap.Height - (MousePosition.Y / 440 * Bitmap.Height); // y is flipped

在此輸入圖像描述

暫無
暫無

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

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