0

我仍在学习 C# & WPF 并尝试制作自己的 Windows 应用程序。对于创建 WPF 应用程序布局的最佳方式的问题,我希望能找到一个简单直接的答案。请看一下图片;我的问题是:

  • 在我的情况下,合适的控制容器是什么?我有许多面板和容器选项可以定义我的应用程序布局......但是最好的选择是什么?

  • 那个可变部分的最佳选择是什么?页面、窗口、导航窗口?虽然我不想要那部分的任何导航控件

  • 按下右侧面板中的任何按钮后,如何使可变部分显示某些页面?如何将该部分与这些可变页面链接?

  • C# WPF 可以帮助我设计应用程序在线/离线工作吗?

在此处输入图像描述

4

1 回答 1

0

我建议适合您的情况的布局是使用 Grids 来构建您的面板以获得自动调整中心部分的大小并使用 StackPanels 将按钮分组在一起。

作为一般规则,我建议使用 Grids 和 DockPanels 来构建布局骨架。网格的列和行大小上的 * 选项非常方便,可以提供不会因窗口大小调整而受到影响的布局。

这是您的布局的 WPF 再现的快速预览。

在此处输入图像描述

这是我用来获取此布局的 XAML(我删除了按钮)

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="40"/>
        <RowDefinition Height="24"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="24"/>
    </Grid.RowDefinitions>
    <Grid Grid.Row="0" Background="LightPink">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <TextBlock Grid.Column="0" Text="Hello World"/>
        <StackPanel Grid.Column="1" Orientation="Horizontal">
            <!-- Top Right Button Panel -->
        </StackPanel>
    </Grid>
    <Grid Grid.Row="1" Background="LightBlue"/>
    <Grid Grid.Row="2" Background="LightGray">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="100"/>
        </Grid.ColumnDefinitions>
        <TextBlock Grid.Column="0" Text="Hello World"/>
        <StackPanel Grid.Column="1" Orientation="Vertical">
            <!-- Left Button Panel -->
        </StackPanel>
    </Grid>
    <Grid Grid.Row="4" Background="LightPink"/>
</Grid>
于 2012-12-23T23:45:16.483 回答