3

我正在使用当前正在处理的 WPF 项目中的页面。但是我似乎无法弄清楚如何更改页面的宽度,或者更确切地说,托管页面的窗口的宽度?

设置页面宽度属性只会改变窗口框架内页面的宽度。

通过以下方式设置主窗口或导航窗口的 with:

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

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

也不行。那么如何在 XAML 中设置窗口的宽度?

4

2 回答 2

2

这确实很痛苦:您需要一个可以导航到页面的 NavigationWindow。由于它继承自 Window,因此您可以在此容器上设置高度和宽度。
- 打开一个新的 wpf 应用程序 - 删除
你得到的标准窗口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>

祝你好运!

于 2009-10-25T22:01:13.253 回答
0

如果您只是询问如何设置 Window 本身的尺寸,那么只需打开 Window 的 XAML 文件并设置 Width/Height 属性:

Window Width="640" Height="480"

如果你真的想要一个差异。每页的窗口大小,您需要做更多的工作。页面的可用空间由主机窗口控制。页面没有内在的方式向主机请求更多的不动产,但是您可以通过创建一些附加的属性来为您的 iwn 应用程序构建支持,这些属性您的主机窗口知道并且可以由页面作者应用。当页面加载时,您的主机可以检查是否设置了这些属性并相应地调整自己的宽度。

于 2009-10-25T20:19:51.260 回答