2010-02-11 95 views
2

我對WPF中一個高精度的面向像素的圖像程序有着驚人的困難,並開始懷疑Cursors.Cross光標熱點不在其中心位置,正如您所期望的那樣。是十字線中間的WPF十字光標的熱點嗎?

我正在使用Magnifier在16x下調試,鼠標設置爲最低加速度。該代碼基於DrawTools from CodeProject

image captured from Magnifier http://www.aussiedesignedsoftware.com/img/WPFCrossCursorHotspotOffset.png

這是相同的光標,你在的WinForms得到什麼?如果是這樣,我可以看看光標的熱點 - System.Windows.Input中的Cursor類沒有HotSpot屬性。

UPDATE

如果有人正在尋找一個解決辦法,在我的情況我已經有一個代表被調用過濾點,這樣我就可以實現鎖定到網格行爲。爲了補償而將點偏移1來抵消是微不足道的。這比創建自定義光標容易得多,並且具有如果外觀應該改變仍然使用庫存光標的優點。

回答

2

我有一個經驗答案,是的,熱點是抵消。

我修改了程序,可以通過按鍵觸發圖形模式,所以你不需要移動鼠標。

使用與上述快照相同的放大鏡視圖,只需按一個鍵即可改變模式在箭頭和十字之間切換光標。

當我切換它時,繪製光標,使黑色線在正常箭頭光標的左上角點上居中。

箭頭光標熱點在它指向的像素(不是黑色像素),所以是的,十字光標熱點不在十字線的中心!

嘆息