Pregunta

Me estoy poniendo los valores de punto flotante como (471, 326.723333333333) de llamar MouseEventArgs.GetPosition() en mi control de las fronteras. Mientras que puedo siempre alrededor de los números de forma manual, me preguntaba si hay algún tipo de configuración para obtener números enteros.

pensé poner SnapsToDevicePixels True en mi control fronterizo ayudaría pero no es así, ya que es probable que no relacionado.

¿Alguna idea?

Gracias!

¿Fue útil?

Solución

En WPF, que siempre tenga posicionamiento devuelto en valores de coma flotante. Si desea redondear, tendrá que hacerlo manualmente.

Esto es debido a la independencia de la resolución, y es por diseño.

Otros consejos

Desde WPF es independiente del dispositivo y no todos los dispositivos comparten el mismo tamaño de píxel que pasan MouseEvents con coordenadas fraccionarias tiene sentido (también se puede poner controles en el espacio 3D donde toda la materia traducción sistema de coordenadas no ocurrirá con valores integrales de píxeles) .

SnapsToDevicePixels es sólo una propiedad que controla cómo se muestra un control y que los bordes y las líneas rectas de preferencia se encuentran en píxeles completos que en el medio. No tiene nada que ver con cómo se manejan los eventos de ratón (como también se ha notado).

Como regla general, todo en WPF se mide en valores double, así que o viven con ella (se comprueba probable sería la misma de todos modos) o continuar con el redondeo a int si de este modo: -)

Posicionamiento de su ratón es continua. Posicionamiento en el monitor es discreta. Los valores de las coordenadas que está recibiendo son mejores que lo que necesita y el redondeo siempre tendrán los píxeles más cercanos. Básicamente, redondear y no preocuparse por ello.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top