我正在尋找一種解決方案來透明地添加平移&變焦能力的WPF圖像控制,我發現該溶液https://stackoverflow.com/a/6782715/584180,通過Wiesław Šoltés和Konrad Viltersten,開發了非常出色。獲取圖像座標
現在我想向控件添加一個「鼠標點擊」事件,以便我可以在原始圖像座標系中點擊點的座標,以便我可以使用它們檢索像素顏色。
我知道會有一些舍入,如果圖像被縮小,顏色將不對應屏幕上顯示的實際顏色。我也明白,用戶可以點擊圖像邊界外,在這種情況下,我期望返回空點或負座標。
我不是做變換的C#這樣的專家,此刻我堅持這一點(在ZoomBorder.cs類中添加):
public Point GetImageCoordsAt(MouseButtonEventArgs e)
{
if (child != null)
{
var tt = GetTranslateTransform(child);
var mousePos = e.GetPosition(this);
var transformOrigin = new Point(tt.X, tt.Y);
return mousePos; // Wrong: how do I transform this?
}
return null;
}
如果要獲取相對於其的座標,請將對Image的引用傳遞給GetPosition方法:var mousePos = e.GetPosition(theImage);這是你想要的嗎? – mm8
你的意思是圖像控件將負責將屏幕位置映射到圖像位置?圖像可能已被縮放和翻譯。 – Lordalcol
如果你想讓某人能夠幫助你,你應該澄清你的要求。你可以從改變問題的標題開始,因爲這個問題似乎與你的實際問題無關......? – mm8