尝试将我的第一个Menu控件拖到VS2010中的WPF应用程序中。
有没有办法(通过VS2010用户界面)设置菜单项等?或者是否必须跳入XAML才能执行此操作?
在将窗体拖动到窗口后,似乎菜单控件似乎存在于窗口的顶部。但是我希望它被渲染为一个典型的Windows菜单,它位于与窗口本身相关的顶部(而不是窗口内容),如果这是有道理的。工具箱中的VS2010“菜单”项是否为您提供“传统”的Windows应用程序菜单?
答案 0 :(得分:4)
我真的鼓励你在开始玩控件之前阅读Panels(和附加属性)以了解它们的布局(特别是Panels和ContentControls之间的区别是关键)。在WPF面板中决定控件的布局方式(至少是控件得到的基础知识)。这听起来很像你试图以WinForms的方式进行WPF - 你最终会非常沮丧,并且在小时转过来之前需要大量的镇静剂......:)
在VS Studio中,模板使用网格作为布局的基础 - 默认情况下,中心和拉伸内容(以及叠加控件),因此只需在其中拖动菜单就会提供无法识别的设计。
至于跳进XAML - 我从不使用ToolBox和Visual Designer。这当然是一种品味问题,但如果你习惯使用VS(与Blend相比),我会发现在编辑原始XAML时更容易理解发生了什么。
一些初始资源:link和link。对于一个简单的入门学习环境 - 我非常喜欢Kaxaml(这是一个使用XAML / WPF的编辑器,尽管在.Net 3.5 sp1中)。
编辑:一个小样本 - 只需复制Window-tags之间的所有内容,然后将其粘贴到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>