문제

호출에서 (471, 326.723333333333)과 같은 부동 소수점 값을 얻습니다. MouseEventArgs.GetPosition() 내 국경 통제소에서요.항상 수동으로 숫자를 반올림할 수 있지만 정수를 얻을 수 있는 설정이 있는지 궁금합니다.

넣는 줄 알았는데 SnapsToDevicePixels 내 국경 통제에서 True로 설정하면 도움이 되지만 관련이 없을 수도 있으므로 도움이 되지 않습니다.

어떤 아이디어가 있나요?

감사해요!

도움이 되었습니까?

해결책

WPF에서는 항상 부동 소수점 값으로 포지셔닝이 반환됩니다. 반올림하려면 수동으로해야합니다.

이것은 해상도 독립성 때문이며 디자인에 의한 것입니다.

다른 팁

WPF는 장치 독립적이고 모든 장치가 동일한 픽셀 크기를 공유하는 것은 아니기 때문에 소수 좌표를 사용하여 MouseEvents를 전달하는 것이 합리적입니다(또한 전체 좌표계 변환 작업이 정수 픽셀 값으로 발생하지 않는 3D 공간에 컨트롤을 배치할 수도 있습니다).

SnapsToDevicePixels는 컨트롤이 표시되는 방식을 제어하는 ​​속성일 뿐이며 가장자리와 직선은 중간보다 전체 픽셀에 있는 것이 좋습니다.(아시다시피) 마우스 이벤트가 처리되는 방식과는 아무 관련이 없습니다.

일반적으로 WPF의 모든 것은 다음과 같이 측정됩니다. double 값을 유지하거나(어쨌든 동일할 것으로 확인) 계속 반올림합니다. int 당신이 원한다면 :-)

마우스로부터의 위치는 연속적이다. 모니터의 위치는 개별적입니다. 당신이 얻는 좌표 값은 필요한 것보다 낫고 반올림은 항상 가장 가까운 픽셀을 제공합니다. 기본적으로, 그것을 둥글게하고 걱정하지 마십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top