Проблема, с которой вы столкнулись в данный момент, заключается в том, что вы вызываете перегрузку Application.Run
, которая принимает основную форму в качестве параметра. Это покажет основную форму, которую вы не хотите.
Вместо этого вы должны вызвать одну из других Application.Run
перегрузок.
Например, вы можете вызвать перегрузка без параметра Application.Run
. Убедитесь, что вы создали и установили свой значок уведомления, прежде чем сделать это. А также создавать, но не показывать свою основную форму.
Когда вы будете готовы показать свою основную форму, в ответ на действие над значком уведомления позвоните lMainForm.Show
. Вы также захотите сделать так, чтобы нажатие кнопки закрытия в форме просто скрывало форму, а не закрывало ее. Я предполагаю, что вы хотите, чтобы ваш основной экземпляр формы сохранялся скрытым в фоновом режиме.
Итак, верхний уровень вашей программы будет выглядеть так:
//create and show the notify icon here
lMainForm := new MainForm;
lMainForm.ShowInTaskbar := true;
lMainForm.Visible := false;//I believe this is the default in any case
Application.Run;
Вам потребуется добавить в меню значков уведомлений элемент, закрывающий приложение. Реализуйте это с помощью:
Application.Exit;
Если вам нужен более точный контроль над временем жизни приложения, вам лучше использовать Application.Run
перегрузку , которая получает ApplicationContext
.
Поскольку у меня нет Prism, я проверил это с помощью C # / WinForms, и я надеюсь, что он хорошо переносится в Prism!