Как связать событие с пунктом меню в WPF с использованием VS2008? - PullRequest
3 голосов
/ 11 мая 2011

Я нахожусь в процессе изучения WPF (пока не знаю много). Я знаю, как связать подэлемент меню с событием, напрямую редактируя xaml, но я хотел бы знать, как сделать то же самое с помощью Visual Studio.

Например, рассмотрим следующий фрагмент XAML:

    <Menu DockPanel.Dock ="Top"
          HorizontalAlignment="Left" Background="White" BorderBrush ="Black">
       <MenuItem Header="_File"/>
       <Separator/>
       <MenuItem Header ="_Exit"
                 MouseEnter ="MouseEnterExitArea"
                 MouseLeave ="MouseLeaveArea"
                 Click ="FileExit_Click"/>

Я бы хотел иметь возможность связать пункт меню "_Exit" с соответствующими обработчиками событий для MouseEnter, MouseLeave и Click, используя Visual Studio вместо ручного редактирования текста xaml. Я пытался сделать это с помощью редактора коллекции «Items», но, похоже, он позволяет редактировать только свойства подэлемента, а не события. Есть ли другой редактор / диалог / и т. Д., Который позволяет редактировать события подэлемента?

Спасибо за помощь,

Джон.

P.S: спасибо, Х.Б., за то, что нашли время правильно отформатировать xaml. : -)

Ответы [ 4 ]

1 голос
/ 27 января 2012

Я понимаю, что это старый поток, но так как я натолкнулся на него, я подумал, что кому-то еще может пригодиться метод, который я нашел, чтобы использовать Visual Studio для просмотра / редактирования определений обработчиков событий под-MenuItems.

Для этого метода по-прежнему требуется доступ к файлу XAML, но вам не нужно его редактировать.Просто выберите (щелкните) запись в файле XAML, который определяет подменю MenuItem, и вы сможете получить доступ к странице «События» в окне свойств (F4).

Если Microsoft слушает, я бы сказал, что этоошибка в дизайне (ошибка?) в редакторе коллекций.

1 голос
/ 15 мая 2011

Кажется, это невозможно сделать.

0 голосов
/ 11 мая 2011

в окне «Свойства» для этого элемента перейдите на вкладку «События», а затем дважды щелкните поле рядом с нужным событием.

в 2008 году я думаю, что есть кнопка, похожая на молнию, которую вы можете нажать, чтобы получить события. Он должен находиться в той же области, что и кнопки для сортировки в алфавитном порядке или для упорядочения по категориям и т. Д.

0 голосов
/ 11 мая 2011

Я не уверен, что вы имеете в виду под "редактировать с Visual Studio", поэтому я надеюсь, что я на правильном пути ...

Вы можете дать названия предметов в xaml:

<MenuItem Name="exitMenuItem" ....>

затем в коде c #:

exitMenuItem.Click += (s,e) =>
{
    DoIt(); // your event handling code
}
...