'FullScreen'에 해당되는 글 1건

  1. 2008/07/22 Full Screen WPF Application
WPF2008/07/22 11:13

안녕하세요. 게으름 부리다 이제서야 포스팅하는 김대욱입니다 ㅠ_ㅜ
프로젝트 중간발표가 다가옴에 따라 마무리 작업을 하느라 포스팅을 못했다고 하고싶지만, 그러기엔 스타를 너무 많이 했네요. -0-;
어쨌든 이번 시간에는 WPF Application을 구현할 때 쉽게 Full Screen Application을 구현하는 방법에 대해 소개해 드리겠습니다.

LayoutTransform 을 사용한 간단한 꼼수(?)와도 같은 방법인데요, 아래와 같이 함수로 구현해 보았습니다.

public bool FullScreen(Window TargetWindow)
{

if (TargetWindow == null) return false;

ScaleTransform FullScreenScale = new ScaleTransform();
FullScreenScale.ScaleX = SystemParameters.PrimaryScreenWidth / TargetWindow.Width;
FullScreenScale.ScaleY = SystemParameters.PrimaryScreenHeight / TargetWindow.Height;

FrameworkElement ChildElement = TargetWindow.Content as FrameworkElement;
ChildElement.LayoutTransform = FullScreenScale;

TargetWindow.WindowState = WindowState.Maximized;
TargetWindow.WindowStyle = WindowStyle.None;
TargetWindow.ResizeMode = ResizeMode.NoResize;

return true;
}


Parameter로 받는 TargetWindow라는 Window객체가 FullScreen을 하고자 하는 Window객체 입니다.
아래와 같이 Window와 관련된 Code안에 포함 시킬 경우 간단하게 사용하실 수 도 있습니다.

void Window1_Loaded(object sender, RoutedEventArgs e)
{

if (FullScreen(this) != false)
{
// ...
//
예외처리
// ...
}
}


몇 줄 안되지만 코드 설명을 하자면,

SystemParameter Class의 PrimaryScreenWidth와 PrimaryScreenHeight Property객체를 사용해 해상도 크기를 얻고 해상도에 TargetWindow의 현재 크기를 나누어 해상도와의 비율을 얻어 ScaleTransform을 생성합니다. TargetWindow에 포함된 컨텐츠의 LayoutTransform에 생성한 ScaleTransform을 저장 함으로서 Window에 포함된 모든 객체는 해상도의 비율에 맞게 크기가 조절됩니다. 마지막으로 TargetWindow의 State를 최대화로 설정하고 WindowStyle을 통해 테두리를 없앤 뒤 크기조정을 할 수 없도록 설정합니다.


밤을 새고 자기전에 올리는 글이라 말을 제대로 했는지 모르겠네요 @_@;;
질문은 메일이나 리플 주세요~~ 그럼 꿈나라 ㄱㄱ

김대욱(kdw234@naver.com) / http://whatisthat.co.kr

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 곡스
TAG , ,