VS2010 WPF - Могу ли я создать меню с элементами меню только через пользовательский интерфейс (не редактируя XAML?) - PullRequest
0 голосов
/ 28 августа 2010

Просто пытаюсь перетащить мой первый элемент управления Menu в приложение WPF в VS2010.

Есть ли способ (через интерфейс VS2010) настроить пункты меню и т. Д.?Или для этого нужно прыгнуть в XAML?

Также кажется, что элемент управления Menu, после того как я перетащил его в окно, существует в верхней части окна.Однако я ожидал, что оно будет отображено как типичное меню Windows, где оно находится вверху, связанное с самим окном (не с содержимым окна), если это имеет смысл.Предоставляет ли VS2010 пункт «меню» из панели инструментов «традиционное» меню приложений Windows?

1 Ответ

4 голосов
/ 28 августа 2010

Я бы настоятельно рекомендовал вам ознакомиться с панелями (и прикрепленными свойствами), прежде чем вы начнете играть с элементами управления, чтобы понять, как они расположены (особенно важно различие между панелями и ContentControls).В WPF панели решают, как расположены элементы управления (по крайней мере, основы, в рамках которых элементы управления говорят, что говорят).Это звучит так, как будто вы пытаетесь сделать WPF способом WinForms - и в итоге вы действительно расстроитесь и будете нуждаться в большом количестве транквилизаторов до того, как приблизится час ...:)

В VS Studio шаблон используетСетка как основа для разметки - которая по умолчанию центрирует и растягивает содержимое (а также накладывает элементы управления), поэтому простое перетаскивание меню в нем приведет к незаметным проектам.Панель инструментов и визуальный дизайнер.Конечно, это дело вкуса, но если вы привыкли использовать VS (в отличие от Blend), мне легче понять, что происходит, когда я редактирую необработанный XAML.

Несколько начальных ресурсов: ссылка и ссылка .И для более простой учебной среды для начала работы - мне очень понравилось Kaxaml (это сборка редактора в XAML / WPF, хотя и в .Net 3.5 sp1).

EDIT: небольшой пример- просто скопируйте все между тегами Window и вставьте их между тегами в шаблоне, которые дает вам 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...