2009-10-25 4 views
3

WPF에서 일종의 자동 조절 사이징이 있는지 알고 싶습니다.WPF : 자동 조절 사이징

즉, 코드에서 정의 할 필요없이 사용자의 화면 해상도에 관한 자동 크기 조정 요소를 의미합니다.

감사합니다.

+0

당신이하려는 일의 예를 들려 줄 수 있습니까?

답변

3

먼저 WPF는 장치 고유 픽셀을 사용합니다. 즉, 사용자가 선택한 DPI에 맞게 적절하게 확장됩니다. 즉, 여기서 DPI에 대해 묻는 것 같지 않습니다. 오히려 해상도로 스케일링을 요청하는 것입니다.

UI가 Window에서 제공되는 사용 가능한 공간으로 확장되도록하려면 a ViewBox control을 Window의 루트 요소로 사용할 수 있습니다. 그런 다음 내부에 넣은 모든 것은 Viewbox를 구성하는 방법에 따라 확장됩니다.

일반적으로 응용 프로그램에서 사용하는 일반적인 접근 방법이 아니라 더 많은 공간을 사용하기 위해 스스로 리플 로우됩니다. 예를 들어 그리드는 다른 UI 공간보다 UI 공간의 더 중요한 부분을 제공하는 데 사용될 수 있습니다.

3

대답은 '예'입니다. 창 크기에 따라 컨트롤의 크기를 조정하려면 여러 가지 방법이 있습니다.

거의 모든 제어를위한이 유용하다 :

HorizontalAlignment="Stretch" 
VerticalAlignment="Stretch" 
Margin="..." (set your margin to control the position) 

유연한 레이아웃을 위해 그리드 사용 : 패널, 또는 행/열 나머지를 채우기에 의해 둘러싸인 중앙 지역

<Grid> 
ColumnDefinition.Width="*" 
RowDefinition.Height="*" 

을 :

<DockPanel> 

같은 모양을 유지하면서 늘리거나 줄이려면 :

<ViewBox> 

다른 많은 것들이 있습니다.

당신은 당신의 컨트롤이 기본로 실행되는 더 큰 또는 DPI, 같은 사용자의 Windows 디스플레이 설정에 따라 화면에 작아하십시오. 사용자가 시스템 아이콘과 글꼴을 더 크게 만들면 텍스트, 아이콘, 글꼴 등이 더 커집니다.

특정 시스템 설정을 화면에 개체의 크기를 묶어하려면, 당신은 같은 SystemParameters 및 SystemFonts 클래스의 속성에 바인딩 할 수 있습니다 :

SystemFonts.CaptionFontSize 
SystemFonts.MenuFontSize 
SystemFonts.IconFontSize 
SystemFonts.StatusFontSize 

SystemParameters.IconHeight 
SystemParameters.IconVerticalSpacing 
SystemParameters.MaximizedPrimaryScreenHeight 

약 75있다 이 설정. WPF가 일반적으로 DPI를 기반으로하는 개체 크기를 조정하기 때문에 일반적으로이 값을 사용하지 않을 것입니다.

일반적으로 화면 개체를 특정 픽셀 수로 강제로 표시하고 싶지는 않습니다. 최종 사용자가 사물이 크게 보이도록 구성된 경우에도 고해상도 화면에 작게 표시되기 때문입니다. 이것은 좋은 일이 아닙니다. 한 가지 예외는 스크린 샷을 특정 해상도의 비트 맵으로 캡처하려는 경우입니다.이 경우 다음과 같이 크기를 설정할 수 있습니다.

control.Height = 
    desiredHeightInActualScreenPixels 
    * System.Windows.SystemParameters.MenuHeight 
    /System.Windows.Forms.SystemInformation.MenuHeight; 
관련 문제