2009-08-12 67 views
0

我在我的邊界控件上獲取浮點值(471,326.723333333333),調用MouseEventArgs.GetPosition()。雖然我總是可以手動將數字四捨五入,但我想知道是否有某種設置來獲得整數。從MouseEventArgs.GetPosition()獲取整數?

我認爲把SnapsToDevicePixels設置爲True將會有所幫助,但它不會,因爲它可能不相關。

任何想法?

謝謝!

回答

4

在WPF中,您將始終使用浮點值返回定位。如果您想圍繞它,您需要手動執行此操作。

這是由於解決方案的獨立性,並且是由設計決定的。

+0

好的,謝謝! – djcouchycouch

0

由於WPF與設備無關,並非所有設備共享相同的像素尺寸,所以傳遞MouseEvents與小數座標是有意義的(也可以將控件放在三維空間中,整個座標系轉換內容不會與整數像素值發生)。

SnapsToDevicePixels只是一個控制顯示控件的屬性,邊和直線最好位於整個像素上而不是中間。它與鼠標事件的處理方式無關(正如你也注意到的)。

根據經驗,一般情況下,在WPF一切都在double值進行測量,因此無論是與它生活(你的檢查很可能是相同的反正)或繼續四捨五入到int如果你喜歡這樣:-)

0

從您的鼠標定位是連續的。在您的顯示器上定位是離散的。你得到的座標值比你所需要的要好,舍入總是會給你最接近的像素。基本上,圍繞它,不要擔心它。