여기에 이상한 버그가 있습니다. CheckBox
컨트롤은 항상 제곱되었습니다. 이제는 그렇지 않은 것으로 나타났습니다. 높이보다 한 픽셀 큽니다. 빈 WPF 응용 프로그램을 조금 실험 한 결과, UseLayoutRounding
설정에 따라 달라지는 것을 발견했습니다. false
으로 설정하면 CheckBox는 절대로 정사각형이 아닙니다. true
으로 설정하면 실제 레이아웃 값과 반올림 방법 또는 픽셀에 물리기 방법에 따라 다릅니다.WPF CheckBox가 제곱되지 않았습니다
.NET Framework 4.5.2, 4.6 또는 4.6.1을 대상으로 빈 WPF 응용 프로그램을 만들고 (이 중 테스트를 거쳤습니다) Windows 10에서 실행하십시오. 다음은 재생할 최소 XAML입니다. 세 번째 상태는 픽셀을 측정하지 않고 양식을 더 쉽게 인식 할 수 있도록 채워진 "사각형"상자를 보여줍니다.
<Window
x:Class="CheckBoxTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" UseLayoutRounding="False">
<Grid>
<CheckBox HorizontalAlignment="Center" VerticalAlignment="Center" IsThreeState="True" IsChecked="{x:Null}"/>
</Grid>
</Window>
그런 다음 창 너비를 끌어서 사각형과 한 픽셀 사이를 전환 할 때 CheckBox를 봅니다. 또 다른 응용 프로그램에서는 항상 1 픽셀 더 넓으며 결코 제곱 된 형태를 갖지 않습니다.
WPF의 버그입니까? Windows 10에서만 발생합니까?
추신 : 이렇게하려면 높은 DPI 모니터를 사용하지 않는 것이 좋지만보기가 어려울 수 있습니다.
WPF를 사용하는 모든 벡터이므로 prelapsarian 부동 소수점 추상화로 작업 한 다음 픽셀에 매핑됩니다. 나는 그것을 "버그"라고 부르지 않을 것이며 인간 상태의 유감스러운 부산물이라고 할 수 있습니다. –
오해하지 마세요. 그러나이 질문의 목적은 무엇입니까? Window의 크기를 재조정 할 때 약간 깜박 거립니다 만, UseLayoutRounding을 false로 설정하지 않고도 깜박입니다. – lokusking
@lokusking CheckBox가 제곱되지 않습니다. 왜곡되고 추악합니다. 내 응용 프로그램에서 그 문제를 해결하고 싶습니다. – ygoe