我正在构建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();