Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VS2010 WPF-我可以仅仅通过UI(不编辑XAML)创建包含菜单项的菜单吗_Wpf_Visual Studio 2010_Xaml_Menu - Fatal编程技术网

VS2010 WPF-我可以仅仅通过UI(不编辑XAML)创建包含菜单项的菜单吗

VS2010 WPF-我可以仅仅通过UI(不编辑XAML)创建包含菜单项的菜单吗,wpf,visual-studio-2010,xaml,menu,Wpf,Visual Studio 2010,Xaml,Menu,只是尝试将我的第一个菜单控件拖到VS2010中的WPF应用程序上 是否有办法(通过VS2010 UI)设置菜单项等?还是必须跳入XAML才能做到这一点 而且,在我将菜单控件拖到窗口上之后,它似乎位于窗口的顶部。然而,我希望它被呈现为一个典型的Windows菜单,如果有意义的话,它位于与窗口本身相关联的顶部(而不是窗口内容)。工具箱中的VS2010“菜单”项是否为您提供了“传统”windows应用程序菜单 我真的鼓励您在开始使用控件之前先阅读面板(和附加属性),以了解它们的布局方式(尤其是面板和C

只是尝试将我的第一个菜单控件拖到VS2010中的WPF应用程序上

是否有办法(通过VS2010 UI)设置菜单项等?还是必须跳入XAML才能做到这一点


而且,在我将菜单控件拖到窗口上之后,它似乎位于窗口的顶部。然而,我希望它被呈现为一个典型的Windows菜单,如果有意义的话,它位于与窗口本身相关联的顶部(而不是窗口内容)。工具箱中的VS2010“菜单”项是否为您提供了“传统”windows应用程序菜单

我真的鼓励您在开始使用控件之前先阅读面板(和附加属性),以了解它们的布局方式(尤其是面板和ContentControls之间的差异是关键)。在WPF中,面板决定控件的布局方式(至少是控件的基本布局)。这听起来很像你试图用WinForms的方式来做WPF——最后你会非常沮丧,在时间临近之前需要很多镇静剂……:)

在VS Studio中,模板使用网格作为布局的基础,默认情况下,网格会居中并拉伸内容(以及覆盖控件),因此只需在其中拖动菜单,就会提供不敏感的设计

至于跳入XAML,我从不使用工具箱和可视化设计器。这当然是一个品味的问题,但是如果您习惯于使用VS(与Blend相反),我发现编辑原始XAML时更容易理解发生了什么

一些入门资源:和。对于一个简单的入门学习环境,我非常喜欢(这是在XAML/WPF中构建的编辑器,尽管是在.NET3.5SP1中)

编辑:一个小示例-只需复制窗口标记之间的所有内容,并将其粘贴到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>

我鼓励您在开始使用控件之前先阅读面板(以及附加属性),以了解它们的布局方式(特别是面板和内容控件之间的差异是关键)。在WPF中,面板决定控件的布局方式(至少是控件的基本布局)。这听起来很像你试图用WinForms的方式来做WPF——最后你会非常沮丧,在时间临近之前需要很多镇静剂……:)

在VS Studio中,模板使用网格作为布局的基础,默认情况下,网格会居中并拉伸内容(以及覆盖控件),因此只需在其中拖动菜单,就会提供不敏感的设计

至于跳入XAML,我从不使用工具箱和可视化设计器。这当然是一个品味的问题,但是如果您习惯于使用VS(与Blend相反),我发现编辑原始XAML时更容易理解发生了什么

一些入门资源:和。对于一个简单的入门学习环境,我非常喜欢(这是在XAML/WPF中构建的编辑器,尽管是在.NET3.5SP1中)

编辑:一个小示例-只需复制窗口标记之间的所有内容,并将其粘贴到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>


谢谢Goblin-你不知道我可以在VS2010中打开一个WPF应用程序(带菜单)来看看吗?(我现在正在找一个。)非常同意。一旦你开始掌握WPF中的“布局管理器”,你就再也不会回到拖放WinForms了。我发现VS2010WPF编辑器已经很好地升级到了'08。我现在使用designer只是为了快速和肮脏的实验…是的,这对Goblin很有帮助,谢谢-所以我看到你使用了DockPanel,所以我的问题是,我猜答案是没有UI方法来建立菜单项-但是你必须手动将它们放在XAML中,这通常是我最后的结果最外层的容器。它超级简单,易于理解。有些人到处使用网格,因为DockPanel中的最后一个控件设置为填充时,DockPanel中的选项卡导航出现了一些问题(因此,您经常会将控件停靠在最后一个控件的底部,这会扰乱选项卡顺序)。感谢Goblin-您不知道我可以在VS2010中打开的WPF应用程序示例(带有菜单)来查看吗?(我现在正在找一个。)非常同意。一旦你开始掌握WPF中的“布局管理器”,你就再也不会回到拖放WinForms了。我发现VS2010WPF编辑器已经很好地升级到了'08。我现在使用designer只是为了快速和肮脏的实验…是的,这对Goblin很有帮助,谢谢-所以我看到你使用了DockPanel,所以我的问题是,我猜答案是没有UI方法来建立菜单项-但是你必须手动将它们放在XAML中,这通常是我最后的结果外层