2010-08-27 61 views
0

只是試圖將我的第一個Menu控件拖放到VS2010中的WPF應用程序。VS2010 WPF - 我可以通過UI(不編輯XAML?)創建菜單項嗎?

有沒有辦法(通過VS2010 UI)設置菜單項等?還是必須跳進XAML才能做到這一點?

另外它看起來像菜單控件,我拖到窗口後,存在於窗口的頂部。不過,我期待它能夠作爲一個典型的Windows菜單呈現,它與窗口本身(而不是窗口內容)相關的頂部正確,如果這是有道理的。工具箱中的VS2010「菜單」項是否爲您提供「傳統」Windows應用程序菜單?

回答

4

在開始播放控件之前,我真的鼓勵您閱讀面板(和附加屬性),以瞭解它們的佈局方式(特別是面板和ContentControls之間的區別很關鍵)。在WPF面板中,決定如何佈置控件(至少可以說是控件的基本內容)。這聽起來很像你試圖做WPF的WinForms方式 - 你會最終真的感到沮喪,並需要大量的安定劑在小時轉身臨近... :)

在VS Studio中,模板使用網格作爲佈局的基礎 - 默認中心和拉伸內容(以及疊加控件),所以只需拖動菜單就可以提供不敏感的設計。

至於跳入XAML--我從來不使用ToolBox和Visual Designer。這當然是品味的問題,但如果您習慣使用VS(與Blend相比),我發現在編輯原始XAML時更容易理解正在發生的事情。

一些起始資源:linklink。對於一個更簡單的入門學習環境 - 我很享受Kaxaml(這是一個XAML/WPF編輯器,儘管在.Net 3.5 SP1中)。

編輯:一小份樣品 - 窗口標籤之間只是複製一切,將其粘貼到模板中的那些Visual Studio的給你之間:

<Window ....> 
    <DockPanel> 
     <Menu DockPanel.Dock="Top"> 
      <MenuItem Header="_File"> 
       <MenuItem Header="_Open"/> 
       <MenuItem Header="_Save"/> 
       <MenuItem Header="_Exit"/> 
      </MenuItem> 
      <MenuItem Header="_Edit"> 
       <MenuItem Header="C_ut"/> 
       <MenuItem Header="_Copy"/> 
       <MenuItem Header="Paste"/> 
      </MenuItem> 
      <MenuItem Header="Help"> 
       <MenuItem Header="About"/> 
      </MenuItem> 
     </Menu> 
     <GroupBox Header="Some interesting controls go here"> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition/> 
        <ColumnDefinition/> 
       </Grid.ColumnDefinitions> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="Auto"/> 
        <RowDefinition Height="*"/> 
       </Grid.RowDefinitions> 
       <Label Content="_First property"/> 
       <TextBox Grid.Column="1"/> 
       <Label Grid.Row="1" Content="_Second property"/> 
       <TextBox Grid.Column="1" Grid.Row="1"/> 
      </Grid> 
     </GroupBox> 
    </DockPanel> 
</Window> 
+0

感謝精靈 - 你不知道的例子WPF應用程序(帶菜單)我可以在VS2010中打開看看? (我正試圖找到一個目前)。 – Greg 2010-08-27 22:38:07

+0

我會用一個更新我的答案:) – Goblin 2010-08-27 22:38:57

+0

非常同意。一旦你開始掌握WPF中的「佈局管理器」,你將永遠不會回頭拖拽ala WinForms。我發現VS 2010 WPF編輯器已經很好地升級到了'08。我現在只使用設計師進行快速和骯髒的實驗... – Nate 2010-08-27 22:39:32

相關問題