2012-12-23 51 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>