我还在学习C#& WPF并尝试制作我自己的Windows应用程序。我希望我能找到关于创建WPF应用程序布局的最佳方法的问题的简单直接的答案。请看一下图片;我的问题是:
在我的情况下,合适的控制容器是什么?我有很多可以定义我的应用程序布局的面板和容器选项...但是最好的选择是什么?
这个多变部分的最佳选择是什么;页面,窗口,导航窗口?虽然我不想在那部分中使用任何导航控件
如何在按下右侧面板中的任何按钮后使该可更改部分显示某些页面?如何将这部分与这些可更改的页面链接?
C#WPF可以帮助我在线/离线设计应用程序吗?
答案 0 :(得分:0)
我建议适合你的情况的布局是使用网格来构建你的面板以获得中心部分的自动调整大小以及使用StackPanels将按钮分组在一起。
作为一般规则,我建议使用Grids和DockPanel来构建布局骨架。网格的列和行大小的*选项非常方便,可以提供不会因窗口大小调整而受到影响的布局。
以下是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>