2010-04-29 4 views
4

해상도가없는 응용 프로그램이 의미하는 바는 많은 친구와 토론 했으므로 해상도를 자유롭게 사용하면 해상도를 원하는 사용자가 응용 프로그램을 보려고 할 때의 위치를 ​​조정해야한다는 의미이며 해상도는 모니터 해상도 또는 어떤 말로 100 x 100 해상도가 무엇입니까?해상도 무료 응용 프로그램

+1

@Kishore,하지만 난 느낌 모든 사람들은 기본을 읽고 나서 SO를하고 정크 질문으로 채우기를 원하지 않습니다. –

+1

기본 사항은 MSDN에 있습니다. 그러나 알고 싶은 것은 누군가가 해상도를 자유롭게 말하면 화면 해상도 또는 마우스를 사용하여 사용자가 변경하는 resizeble 폼 해상도를 의미합니까? –

답변

0

다른 해상도에서 비율이 동일해야한다고 생각합니다. 응용 프로그램이 새로운 해상도로 조정하기 위해 내부적으로 창 크기를 조정한다는 것을 의미하지는 않습니다. 그러나 이것은 보편적이지 않습니다.

언급해야 할 또 다른 중요한 사실은 이것이 가져온 컨텍스트입니다. 예를 들어 웹 응용 프로그램에 대한 다른 기대치가 있습니다. 해상도에 따라 레이아웃이나 페이지 크기가 변경 될 수 있습니다. 비디오 게임, 화면 해상도 및 화면에 따라 very differently을 렌더링 할 수 있습니다. 그리고 정규 windows 신청 (GUI), 나는 이미 언급했다.

+0

화면 해상도 또는 사용자 정의 평균 사용자가 창 크기를 조정합니까? –

+0

죄송합니다. 반복 할 수 있습니까? –

+0

누군가가 해상도를 말하면 화면 해상도 또는 마우스를 사용하여 사용자가 변경하는 resizeble 폼 해상도를 의미합니까? –

1

당신은 응용 프로그램에 대한 WPF를 사용할 수 있습니다. 양식에서 만드는 모든 컨트롤은 다른 화면 해상도로 표시됩니다.

WPF의 주요 장점 중 하나는 "해상도 독립성"입니다. 종종 이러한 이점은 상대적으로 모호한 용어로 설명되어 사람들이 모니터가 설정된 해상도에 관계없이 동일한 크기의 모든 모니터에 동일한 WPF 창이 표시된다는 것을 믿게합니다.

2

WPF는 장치 독립적 좌표를 사용합니다. 즉, 응용 프로그램이 다양한 DPI 설정에서 올바르게 조정되고 균일하게 조정됩니다.

WPF의 또 다른 매우 유용한 기능은 확장 가능한 응용 프로그램을 만드는 데 사용할 수있는 ViewBox입니다. 다음을 시도하십시오.

<Window x:Class="WpfApplication2.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Width="300" Height="300"> 
    <Viewbox Stretch="Uniform"> 
     <Grid Width="300" Height="300"> 
      <Button Content="Button" Margin="16,8,0,0" 
        Width="104" Height="32" 
        HorizontalAlignment="Left" 
        VerticalAlignment="Top" /> 
      <CheckBox Content="CheckBox" Margin="136,8,0,0" 
         Width="112" Height="24" 
         HorizontalAlignment="Left" VerticalAlignment="Top" /> 
     </Grid> 
    </Viewbox> 
</Window> 

이 간단한 예제는 창 제목 표시 줄과 테두리가 약간 벗어난 원인이지만 아이디어가 있습니다. 이 창 크기를 조정하면 콘텐트의 크기가 균등 해 지므로 모든 해상도에서 동일하게 보입니다.

3

이상적으로 응용 프로그램은 더 높은 픽셀 밀도를 사용하여 더 자세한 정보를 표시합니다. 예를 들어, 고해상도 모니터는 비슷한 크기의 도구 모음 아이콘을 표시 할 수 있지만 더 선명한 그래픽을 렌더링하려면 여분의 픽셀을 사용하십시오. 그렇게하면 동일한 기본 레이아웃을 유지하면서 선명도와 세부 묘사를 향상시킬 수 있습니다. 여러 가지 이유로 과거에는이 솔루션을 사용할 수 없었습니다. GDI/GDI +로 그려진 그래픽 콘텐츠의 크기를 조정할 수 있지만 User32 (일반 컨트롤의 시각적 효과를 생성 함)는 True Scaling을 지원하지 않습니다.

WPF는 간단한 모양에서 단추와 같은 공용 컨트롤에 이르기까지 모든 사용자 인터페이스 요소를 렌더링하므로이 문제가 발생하지 않습니다. 결과적으로 컴퓨터 모니터에서 1 인치 너비의 단추를 만들면 고해상도 모니터에서 1 인치 너비를 유지할 수 있습니다. WPF는 더 자세히 고 픽셀로 렌더링합니다.

WPF는 실제 디스플레이 장치의 DPI가 아닌 시스템 DPI 설정에 따라 크기가 조정됩니다. 크기를 계산할 때 시스템 DPI 설정을 사용합니다.

WPF 단위

WPF 윈도우와 그 안에있는 모든 요소가 장치 독립적 인 장치를 이용하여 측정된다. 단일 장치 독립 장치는 1/96 인치로 정의됩니다. 실제로이 의미가 무엇인지 이해하려면 예제를 고려해야합니다.

크기가 96 단위 인 WPF에서 작은 버튼을 만들었다 고 상상해보십시오. 표준 Windows DPI 설정 (96 dpi)을 사용하는 경우 각 장치 독립적 장치는 실제 실제 픽셀 1 개에 해당합니다.

[Physical Unit Size] = [Device-Independent Unit Size] × [System DPI] 

       = 1/96 inch × 96 dpi 

       = 1 pixel 

기본적으로 WPF는 윈도우 시스템 DPI 설정을 통해 것을 알려주기 때문에 인치를 만들기 위해 96 개 픽셀을 취 가정 WPF는이 계산을 사용하기 때문입니다. 그러나 현실은 디스플레이 장치에 따라 다릅니다.

예를 들어 최대 해상도가 1600 x 1200 픽셀 인 20 인치 LCD 모니터를 고려해보십시오. 다음과 같이 피타고라스의 대시를 사용하면,이 모니터의 픽셀 밀도를 계산할 수 있습니다

이 경우
[Screen DPI] = ((Sqroot of)(1600*1600)+(1200*1200))pixels/19 inches = 100dpi 

, 픽셀 밀도가 Windows가 가정보다 약간 높은 100 dpi의에 밖으로 작동합니다. 결과적으로이 모니터에서는 96 x 96 픽셀 버튼이 1 인치보다 약간 작습니다.

해상도가 1024 x 768 인 15 인치 LCD 모니터를 고려해보십시오. 여기서는 픽셀 밀도가 약 85dpi로 떨어 지므로 96 x 96 픽셀 버튼이 1 인치보다 약간 크게 보입니다 .

두 경우 모두 화면 크기를 줄이면 (예 : 800x600 해상도로 전환) 버튼과 다른 모든 화면 요소가 상대적으로 크게 표시됩니다. 이는 시스템 DPI 설정이 96 dpi로 유지되기 때문입니다. 다시 말해서 Windows는 해상도가 낮을수록 픽셀 수가 훨씬 적지 만 인치당 96 픽셀을 사용한다고 가정합니다.

참조 : 프로 2008 C#에서 WPF : .NET 3.5 윈도우 프리젠 테이션 파운데이션, 정말 좋은이 질문에, 나는 기초는 MSDN 및 소개 문서에 항상 믿고 무슨 Second Edition의

관련 문제