#c# #wpf
#c# #wpf
Вопрос:
Я столкнулся с ужасной проблемой воздушного пространства (снова!). По сути, при нажатии кнопки я отображаю элемент управления диалогового окна над макетом WPF, в котором используется WindowsFormsHost, и диалоговое окно не всегда будет отображаться правильно! Иногда (когда diaplay искажается, то есть) Я вижу содержимое диалогового окна нормально, но кнопки OK-Cancel и строки заголовка исчезают!
Ниже показано, как я создаю и показываю диалоговое окно в обработчике событий нажатия кнопки:
DXDialog dDialog = new DXDialog(culture.ShowingMenu_Customization, DialogButtons.OkCancel, true);
var result = dDialog.ShowDialog();
P.S: Я читал в другой теме, что следующий LOC устраняет эти проблемы, но где именно я должен подключить эти LOC? Я добавил их в конце моего ранее упомянутого click eventhandler, но разницы в результате не было.
DispatcherFrame frame = new DispatcherFrame();
Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new DispatcherOperationCallback(delegate(object parameter) {
frame.Continue = false;
return null;
}), null);
Dispatcher.PushFrame(frame);
С уважением,
Рон.
Комментарии:
1. После того, как вы загрузите окно / диалоговое окно. Попробуйте изменить размер диалогового окна, добавив некоторые значения в Высоту и ширину, как в диалоговом окне. Высота = диалоговое окно. Фактическая высота 2; Это отчасти решит проблему.
2. @AyyappanSubramanian если я добавлю строку типа «dDialog. Высота = dDialog. Фактическая высота 2; «после»var результат = dDialog. ShowDialog();», выполнение фактически никогда не достигает 2-й строки, пока диалоговое окно не будет закрыто. Так что, похоже, это не совсем так работает.
3. Добавьте строку в dDialog. загруженное событие.
4. @AyyappanSubramanian — я уже делал что-то подобное, и это частично решает проблему. Добавление строк в dDialog. Загружено или dDialog. Активация не решает проблему, но делает это в dDialog. ContentRendered делает! Тем не менее, я получаю небольшой эффект мерцания / мерцания на экране — поскольку рендеринг сначала теряется из-за проблемы с воздушным пространством, а затем повторно отображается при регулировке высоты. Есть идеи, как я мог бы усовершенствовать решение и избавиться от этого мерцания?