2012-12-23 48 views
0

我还在学习C#& WPF并尝试使我自己的Windows应用程序。我希望我能找到一个简单而直接的答案来解答我的关于创建我的WPF应用程序布局的最佳方法的问题。请看看图像;我的问题是:如何决定使用哪些元素来制作WPF应用程序布局?

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

  • 该可变部分的最佳选择是什么;页面,窗口,导航窗口?虽然我不想在该部分的任何导航控件

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

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

enter image description here

+0

如果你把你的问题作为文本不在照片那将是巨大的。如果你想真正的答案尝试改善你的问题。 –

+0

我改进了我的问题,因为你建议..谢谢你的帮助 – Hatem

+0

你的意思是“Can C#WPF可以帮助我设计一个应用程序在线/离线工作吗?” –

回答

0

布局我建议以适合你的情况将是使用网格组织你面板以获得中心部分的自动调整大小和用于分组的按钮使用StackPanels一起。

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

这是一个WPF复制布局的快速预览。

enter image description here

这里是我用来获得此布局的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>