powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Борода с ContextMenu :-(
5 сообщений из 5, страница 1 из 1
Борода с ContextMenu :-(
    #39282730
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть окно, лежит в отдельной либе. В окне кнопка:
Код: xml
1.
<ToggleButton Content="Add New..." Click="AddNewSortItem_Click" />



По нажатию показываю у кнопки контекстное меню:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
		private void AddNewSortItem_Click(object sender, RoutedEventArgs e)
		{
			FrameworkElement fe = sender as FrameworkElement;
			fe.ContextMenu = new ContextMenu();

			MenuItem mi = new MenuItem();
			mi.Header = "MenuItem";
			mi.Click += new RoutedEventHandler(AddNew_Click);
			fe.ContextMenu.Items.Add(mi);

			fe.ContextMenu.IsOpen = true;
			fe.ContextMenu.Closed += new RoutedEventHandler(ContextMenu_Closed);
		}

		void ContextMenu_Closed(object sender, RoutedEventArgs e)
		{
			btnAdd.IsChecked = false;
		}

		void AddNew_Click(object sender, RoutedEventArgs e)
		{
			MenuItem mi = sender as MenuItem;
			string name = mi.Header.ToString();
		}



Засада такая: если я делаю WPF приложение, из App.xaml вызываю окно, то всё работает как надо. А если я запускаю Unmanaged приложение (ничего особенного, С++/ATL/WTL) и показываю окошко из него, то меню появляется, ContextMenu_Closed - вызывается, а AddNew_Click - не вызывается. Никаких исключений нет, в Output ничего лишнего не пишется. Как вылечить? В чём разница в вызове окна - из WPF приложения, или из Unmanaged? Может, как-то иначе виндовые сообщения обрабатываются?
...
Рейтинг: 0 / 0
Борода с ContextMenu :-(
    #39283375
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может дело в App.Run()?
...
Рейтинг: 0 / 0
Борода с ContextMenu :-(
    #39283421
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А какое там может быть дело?
...
Рейтинг: 0 / 0
Борода с ContextMenu :-(
    #39283424
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если что, окошко показывается через ShowDialog. Owner-а для окна установил:

Код: c#
1.
2.
WindowInteropHelper wih(MyWindow);
wih.Owner = hWnd;
...
Рейтинг: 0 / 0
Борода с ContextMenu :-(
    #39292748
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашёл причину. Дело оказалось не в WPF. Просто unmanaged код хитро перехватывал message loop и съедал сообщения от context menu.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Борода с ContextMenu :-(
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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