2013-04-29 3 views
0

이 질문의 머리말을하기 위해 UI를 다른 사람이 함께 사용하는 응용 프로그램의 백 엔드를 코딩하고 있습니다 (Blend를 사용한다고 생각합니다). 이 응용 프로그램은 일련의 "화면"으로 구성되며 XAML의 루트 요소는 "UserControl"입니다. 소스의 어느 곳에서나 "Window"태그를 사용하지 않습니다.WPF UserControl에서 Windows 테두리를 제거하는 방법?

내가하고 싶은 것은 프로그램을 실행할 때 응용 프로그램의 외부 가장자리에 추가 된 Windows 테두리를 제거하는 것입니다. 현재 국경은 웹 브라우저와 같은 앞으로/뒤로 버튼과 닫을 X 버튼으로 구성됩니다.

내가 검색에서 찾을 수있는 모든

이 지침은

<Window> 

요소에

WindowStyle="None" 

를 추가 할 수 있습니다. 물론 그 중 하나는 없으며 WindowStyle은 UserControl의 속성이 아닙니다. 누구든지이 UserControl 루트 요소를 사용하여 수행하는 방법을 알고 있습니까?

편집 : 응용 프로그램의 StartupUri는

this.StartupUri = new Uri(@"pack://application:,,,/WpfPrototype1.Screens;Component/Screen_1.xaml"); 

는 창 태그가 없습니다 가리키는 파일입니다.

+3

앞에'Window' 어딘가에 작성해야합니다, 당신은 그것을 수정해야 \ –

+1

이를 위해 열심히 봐. Window object :) –

+0

글쎄, 전체 해결책을 찾기 위해 ""과 "window"라는 매개 변수를 가진 파일을 찾았지만 결과는 0입니다. 어떻게 든 그 수색에서 숨길 수 있을까요? – Tevis

답변

3

위의 설명에 따르면 MainWindow은 어딘가에서 동적으로 생성 된 것으로 보이지만 Application 클래스를 사용하면 MainWindow 응용 프로그램을 얻을 수 있습니다.

var mainWindow = Application.Current.MainWindow; 

그리고 당신은 거기에서 당신의 테두리 스타일을 설정할 수 있습니다

예 :

private void RemoveBorder() 
{ 
    var mainWindow = Application.Current.MainWindow; 
    if (mainWindow != null)//should never be 
    { 
     mainWindow.WindowStyle = System.Windows.WindowStyle.None; // removes top bar (icon, title, close buttons etc) 
     mainWindow.AllowsTransparency = true; //removes the border around the outside 
    } 
} 
관련 문제