Как удалить вопросительный знак из заголовка из диалога рабочего процесса? - PullRequest
2 голосов
/ 30 марта 2020

Я показываю WorkflowElementDialog из моего приложения, это диалоговое окно имеет знак вопроса рядом с кнопкой закрытия. есть ли способ его удалить?

Xaml Code

<sap:WorkflowElementDialog x:Class="SqlEditorDialog"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:s="clr-namespace:System;assembly=mscorlib"
        xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
        xmlns:sapc="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation"
        xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation"
        Title="{x:Static p:Resources.EditSql}">

</sap:WorkflowElementDialog>

Sample Image

1 Ответ

0 голосов
/ 30 марта 2020

Я показываю WorkflowElementDialog из моего приложения, это диалоговое окно имеет знак вопроса рядом с кнопкой закрытия. есть ли способ удалить его?


Боюсь, что нет встроенного способа удалить знак вопроса из области заголовка; это на самом деле называется кнопкой контекстной помощи. Когда вы вызываете Show или создается экземпляр, он создает новый экземпляр WorkflowElementDialogWindow. В этом классе есть подпрограмма с именем OnInitialized, которая устанавливает некоторые свойства, а также вызывает базовый класс, из которого он получен, с именем DialogWindow а затем звонит OnSourceInitialized(). В этой подпрограмме создается фактическая контекстная кнопка, вот как она выглядит.

 protected override void OnSourceInitialized(EventArgs e)
 {
      base.OnSourceInitialized(e);
      this.HideMinMaxButton();
      this.ShowContextHelpButton(); // Here's the culprit.
      this.HideIcon();
      this.AddWindowsHook(new HwndSourceHook(DialogWindow.OnHookedWindowMessage));
      base.get_CommandBindings().Add(new CommandBinding(ApplicationCommands.get_Help(), new ExecutedRoutedEventHandler(this.OnHelpExecuted)));
      base.Closing += new CancelEventHandler(this.OnWindowClosing);
 }

Один из вариантов - воссоздать классы, после чего вы можете пропустить подпрограмму ShowContextHelpButton; но это потребует небольшой работы и некоторого просмотра исходного кода.

Ссылки:

WorkflowElementDialog Источник

...