[英]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.