Я создаю приложение WPF, в котором есть главное окно, содержащее фрейм с несколькими страницами и значок на панели задач.
Проблема в том, что значок на панели задач и MainWindow XAML находятся в одном классе, поэтому при запуске приложения я хочу, чтобы значок на панели задач отображался, но не в главном окне.В настоящее время у меня есть:
systemTray = new SystemTray();
systemTray.Show();
Затем в системном трее
public SystemTray() {
InitializeComponent();
}
Я пытался использовать Hide();
до и после InitializeComponent();
и systemTray.Show()
, но нетпомогло.Я понимаю, что systemTray.Show()
является причиной, по которой открывается окно, но в нем также запускается XAML, который открывает значок в системном трее.Как показано ниже:
<tb:TaskbarIcon
IconSource="/Icons/General.ico"
ToolTipText="General"
MenuActivation="LeftOrRightClick">
<tb:TaskbarIcon.ContextMenu>
<ContextMenu
Background="WhiteSmoke">
<MenuItem Header="My Profile"
x:Name="MyProfile" Click="Profile_Click"/>
</ContextMenu>
</tb:TaskbarIcon.ContextMenu>
</tb:TaskbarIcon>
Поэтому в идеале я хочу, чтобы значок в системном трее появлялся, с окном, скрытым при инициализации, и затем, когда нажата My Profile
, окно становится видимым.
РЕШЕНИЕ
Мне просто нужно было добавить Visibility = Visbility.Hidden
в InitializeComponent();