"웹 브라우저 WPF ... 응용 프로그램"이 무슨 뜻인지 명확하지 않습니다. WPF는 웹 브라우저에서 실행되지 않습니다. 부드러운 롤빵. 아니면 실버 라이트를하고 계십니까? 또는 브라우저 기반이 아닌 WPF 탐색 응용 프로그램입니까? 명확히해야합니다.
높은 DPI 모드로 실행하면 WPF가 자동으로 콘텐츠의 크기를 조정합니다. 이것은 의도 된 동작입니다 : 사용자가 명시 적으로 화면에 모든 것이 더 커지라고 말하면 WPF는 사용자의 희망을 존중합니다. 오래된 WinForms 해킹은 "높은 DPI를 사용하지 않는 것은 존재하지 않으며 보통의 작은 크기로 모든 것을 보여주고 사용자를 너무 많이 화나게하지 않기를 바란다"WPF에서는 사용할 수 없다. 당신이 그것에 익숙하다면 아마 그들을 에뮬레이션 할 수 있습니다. 그러나 당신은 옳은 일을하는 것에 대해 매우 강하게 조종됩니다.
WPF 저울 모든 내용이이므로 "캔버스의 일부가 보이지 않습니다"라는 문장은 의미가 없습니다. 캔버스, 부모 창 및 자식 요소를 모두 같은 크기로 조정해야하므로 모든 것이 96dpi에 적합하면 120dpi 및 144dpi로 맞춰야합니다. 그렇지 않다면 이상한 일을하고 있으며 문제를 재현하는 코드 샘플을 제공해야합니다.
높은 DPI 모드로 실행할 때 글꼴이 흐릿하다고 주장하는 것처럼 보입니다. 매우 이상하게 들릴 수 있습니다. 글꼴은 벡터로 렌더링되므로 높은 DPI 모드에서도 선명하게 렌더링하고 선명하게 렌더링해야합니다. 내가 묘사 한 모호한 글꼴은 본 적이 없으므로 다시 한 번 당신은 재현 사례를 제공해야 할 것입니다.
흐릿해질 것으로 예상되는 유일한 점은 이미지입니다. UI에서 래스터 (비트 맵) 이미지 (BMP/GIF/JPG/PNG)를 사용하는 경우 (예 : 툴바의 아이콘의 경우) 그렇다면 배율을 조정할 때 상당히 나 빠질 것입니다. 작은 비트 맵을 가져 와서 더 크게 만들면 거의 항상 나 빠진다. 더 큰 이미지를 사용하고 디스플레이 크기를 조정하여이 문제를 해결할 수 있습니다. 예를 들어 툴바 이미지를 16x16 (표준 96dpi 모드)로 설정하려면 32x32 비트 맵을 XAML에서 Image 요소의 Width = "16"및 Height = "16"을 설정하고 더 잘 보이는지 확인합니다. 실제로는 120dpi 모드에서는 20x20 픽셀, 144dpi 모드에서는 24x24입니다. 둘 다 32x32 리소스에서 크기가 축소되므로 크기를 늘려야하는 16x16 소스 이미지보다보기 편할 것입니다. . WPF 도구 모음에서이 기술을 시도하지는 않았으므로 일반적인 도구 모음 이미지로 실제로 얼마나 잘 작동하는지 잘 모르겠습니다.
스케일링 문제를 해결하는 가장 좋은 방법은 이미지는 래스터 대신 벡터 이미지를 사용하는 것입니다. 불행히도 벡터 이미지 라이브러리를 찾는 것은 어렵습니다. 일반적으로 비트 맵 이미지에서 찾을 수있는 것보다 훨씬 적고 일반적으로 비싸지 않은 경우가 많습니다.
조, 저는 xbap을 말하고 있습니다. WPF에서 120 또는 144 dpi에 따라 ALL이 다시 그려진다는 것을 완전히 알고 있지만. 흐린 글꼴에 대해 유감스럽게 생각합니다. 사실, 비트 맵 이미지 내에 캡슐화 된 글자입니다 ... 나쁘다! 즉, 전체 사용자에게 맞는 96 dpi로 응용 프로그램을 그릴 때 다른 사용자가 144 dpi를 사용하면 응용 프로그램이 거의 보이지 않을 것입니다. 그래서 문제는 : 그는 스크롤바를 사용해야합니까, 아니면 전체 내용의 크기를 조정해야합니까? –
1024x768 화면에 정확하게 맞도록 XBAP을 하드 코딩하려고합니다. 오르막길에 싸우고 있습니다. 각기 다른 툴바와 다른 크롬이 수직 공간의 양을 다르게하여 브라우저 버전이 다를 수 있습니다. 다른 Windows 설정 (제목 표시 줄 높이, 작업 표시 줄 높이, 작업 표시 줄이 고정되어있는 모니터의 어느 쪽인지)을 갖습니다. 다른 화면 해상도와 종횡비 (예 : 넓고 키가 크지 않은 와이드 스크린 모니터)는 말할 것도 없습니다. WPF의 레이아웃 기능을 사용하여 정상적으로 크기를 조정하는 UI를 디자인하는 것이 좋습니다. –