الحصول على أرقام كاملة من mouseventargs.getposition ()؟

StackOverflow https://stackoverflow.com/questions/1266828

  •  13-09-2019
  •  | 
  •  

سؤال

أحصل على قيم نقطة عائمة مثل (471، 326.7233333333333) من الاتصال MouseEventArgs.GetPosition() على مراقبة الحدود الخاصة بي. بينما يمكنني دائما تقريب الأرقام يدويا، كنت أتساءل عما إذا كان هناك نوع من الإعداد للحصول على أرقام كاملة.

اعتقدت وضع SnapsToDevicePixels إلى True على مراقبة الحدود، سيساعد الأمر، لكنه لا، لأنه ربما لا علاقة له.

أيه أفكار؟

شكرا!

هل كانت مفيدة؟

المحلول

في WPF، سيكون لديك دائما تحديد المواقع التي تم إرجاعها في قيم النقطة العائمة. إذا كنت ترغب في تقريبه، فستحتاج إلى القيام بذلك يدويا.

هذا يرجع إلى استقلال القرار، وهو حسب التصميم.

نصائح أخرى

نظرا لأن WPF مستقلة للجهاز ولا تشارك جميع الأجهزة نفس أحجام البكسل التي تمر mousevents مع إحداثيات كسور منطقية (يمكنك أيضا وضع عناصر التحكم في الفضاء ثلاثي الأبعاد حيث لن تحدث الأشياء التي يتم إحضارها بأكملها على قيم البكسل بالكامل).

يعد SnapstodevicePixels مجرد خاصية تتحكم في كيفية عرض عنصر تحكم وأن الحواف والخطوط المستقيمة تكمن بشكل فضفاض على بكسل كاملة مما كانت عليه. لا علاقة له بكيفية معالجة أحداث الماوس (كما لاحظت أيضا).

كقاعدة عامة للإبهام، يتم قياس كل شيء في WPF في double القيم، لذلك إما العيش معها (شيك من المرجح أن تكون هي نفسها على أي حال) أو مواصلة التقريب إلى int إذا كنت تحب ذلك :-)

تحديد المواقع من الماوس الخاص بك مستمر. تحديد المواقع على شاشتك منفصلة. القيم الإحداثية التي تحصل عليها أفضل من ما تحتاجه والتقرير سوف يعطيك دائما أقرب بكسل. أساسا، تقريبها ولا تقلق بشأن ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top