powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Меню в WPF
5 сообщений из 5, страница 1 из 1
Меню в WPF
    #38059664
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь за глупый наверное вопрос, в первый раз пробую WPF, писал на Delphi, пробовал чуть WinForms. Книжки по WPF пока не читал.
Делаю простое тестовое приложение в Visual C# 2010 Express. Кидаю с панели инструментов меню на форму, создаю в редакторе Items пункт File. У него в редакторе Items создаю пункт Close и задаю свойство Command - Close. Запускаю программу, этот пункт выглядит серым, как Disabled, на нажатие нет реакции. Создаю еще один Item в меню File - с ним то же самое. У обоих свойство IsEnabled=True (отмечено флажком в редакторе свойств).
Как сделать эти пункты меню действующими?
Вот кусок из XAML:
Код: xml
1.
2.
3.
4.
5.
6.
        <Menu Height="23" HorizontalAlignment="Left" Name="menu1" VerticalAlignment="Top" Width="45" IsMainMenu="True" IsEnabled="True">
            <MenuItem Header="File" IsEnabled="True">
                <MenuItem Command="ApplicationCommands.Close" IsEnabled="True" />
                <MenuItem Command="ApplicationCommands.Open" IsEnabled="True" />
            </MenuItem>
        </Menu>


В примере в MSDN на MenuItem по-моему так же.
...
Рейтинг: 0 / 0
Меню в WPF
    #38059708
Фотография Местный король Делфей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, Close_Executed, Close_CanExecute));

public void Close_Executed(object sender, ExecutedRoutedEventArgs e)
{
   MessageBox.Show("Close");
}

public void Close_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
   e.CanExecute = true;
}
...
Рейтинг: 0 / 0
Меню в WPF
    #38059738
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62,

Я бы посоветовал почитать про Command.
Они отличаются от Delphi и Windows Forms.
И если время есть - сразу создай команды через ICommand - то есть вынеси отдельно создание RelayCommand и через него делай биндинг на свои команды (которые ты создашь во ModelView)
...
Рейтинг: 0 / 0
Меню в WPF
    #38059828
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Местный король Делфей, Memberunknownfromrus,
спасибо. Немного прояснилось. Думал, что команды из списка (типа ApplicationCommands.Close) - это какие-то готовые процедуры (функции), но как понял на данный момент, это просто названия, а программный код, который будет выполняться по этой команде, нужно написать самому. Читаю MSDN про команды.
...
Рейтинг: 0 / 0
Меню в WPF
    #38059923
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62 а программный код, который будет выполняться по этой команде, нужно написать самому.
Ага, может быть так, что объект (который у нас CommandTarget) сам уже имеет реализацию команды, так что код писать не нужно, например Paste для TextBox.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Меню в WPF
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]