2009-10-25 4 views
3

현재 임 작업중인 WPF 프로젝트의 페이지를 사용하고 있습니다. 그러나 나는 페이지의 너비, 또는 오히려, 페이지를 호스팅하는 창의 너비를 변경하는 방법을 알아낼 수가 없어?WPF에서 페이지를 사용할 때 창 너비 변경

페이지 너비 속성을 설정하면 창 프레임 안의 페이지 너비 만 변경됩니다.

MainWindow를의로 설정 또는 통해 navigationwindow :

<Application.MainWindow> 
    <Window Width="400" /> 
</Application.MainWindow> 

<Application.MainWindow> 
    <NavigationWindow Width="400" /> 
</Application.MainWindow> 

않아요 중 하나가 작동. 그러면 XAML에서 창의 너비를 어떻게 설정합니까?

답변

2

실제로 고통입니다. 페이지로 이동할 수있는 NavigationWindow가 필요합니다. 이 창에서 상속하므로이 컨테이너의 높이와 너비를 설정할 수 있습니다.
- 새로운 wpf 응용 프로그램을 엽니 다
-delete 표준 창 1.

변경 App.xaml 이렇게합니다 (StartupUri 속성을 삭제) :

<Application x:Class="WpfApplication1.App" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Startup="Application_Startup"> 
<Application.Resources> 

</Application.Resources> 
</Application> 

을 적는다 App.xaml.cs를를 따라서 :

public partial class App : Application 
{ 
    private NavigationWindow navigationWindow; 

    private void Application_Startup(object sender, StartupEventArgs e) 
    { 
     navigationWindow = new NavigationWindow(); 
     navigationWindow.Height = 200; 
     navigationWindow.Width = 100; 
     var page = new Page1(); 
     navigationWindow.Navigate(page); 
     navigationWindow.Show(); 
    } 

이 프로젝트 메뉴에서 페이지를 추가 할 수 있습니다 . 이렇게하면 다음과 같은 것을 얻을 수 있습니다 :

<Page x:Class="WpfApplication1.Page1" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Title="Page1"> 
<Grid> 
    <TextBlock>test</TextBlock> 
</Grid> 
</Page> 

행운을 빈다!

+0

고마워, 그게 내가 필요한거야! 이 방법으로 ReSizeMode 등의 다른 것들을 설정할 수도 있습니다. –

0

그냥, 윈도우 자체의 크기를 설정 한 후 바로 너비 ​​/ 높이 속성을 윈도우의 XAML 파일을 열어 설정하는 방법을 묻는 경우 :

Window Width="640" Height="480" 

당신이 실제로 DIFF을합니다. 페이지 당 창 크기, 좀 더 작업해야합니다. Page의 사용 가능한 공간은 호스트 창에 의해 제어됩니다. 페이지가 호스트로부터 더 많은 부동산을 요구하는 본질적인 방법은 없지만, 호스트 윈도우가 알고 있고 페이지 작성자가 적용 할 수있는 첨부 된 속성을 작성하여 iwn 응용 프로그램에 지원을 구축 할 수 있습니다. 페이지가로드되면 호스트는 이러한 속성이 설정되어 있는지 확인하여 그에 따라 자체 너비를 조정할 수 있습니다.

+0

답변 주셔서 감사합니다.하지만 내 문제를 오해한다고 생각합니다. 저는 컴파일 할 때 한 번만 호스트 창의 너비를 설정하려고합니다. 그래서 제가 제어하고자하는 페이지 폭이 아니라 윈도우 프레임 폭입니다. –