我完成让我的应用程序,现在我想收编“到最小化系统托盘功能”它。 我读了一篇好文章尽量减少应用程序到系统托盘 。 我意识到,这些利用Windows.Form类。
不幸的是我已经使用的Windows Presentation Foundation WPF的参考 ,使我的应用程序的用户界面。 现在我看到的NotifyIcon不WPF支持。 我看到有CodePlex上模拟NotifyIcon的性质的开源库WPF的Contrib我没有用它尚未。
现在我进退两难。 这里是我的问题: -
A)我不想掺入3'rd党库只是一个单一的组件。
B)我可以不用在WPF NotifyIcon的最小化的功能? 如果是,那么怎么能有人给我带来好吗?
或者,也许我应该恢复我的UI重新使用Windows窗体?
如果您重新不愿意使用外部组件,我推荐WPF 的NotifyIcon 。 我用它。 它的简单和行之有效的。
它不只是依靠相应的WinForms组件上,但是它利用以显示丰富的工具提示,弹出窗口,上下文菜单和气球消息WPF框架的几个特征的纯粹独立控制。
我只是碰到这个职位今天就来了。
作为参考,我也该解决了一段时间回来。 它的工作原理非常好,我有一个有点问题的唯一时间是偶尔在一些多显示器设置窗口。
这是前控释片和NuGets是中-的事情,我将它放在GIT回购,如果有兴趣。
CodeProject上的文章在这里
这里是一个线程,这对我帮助很大。
https://stackoverflow.com/a/12428063/10305444
public partial class Window : System.Windows.Window{
public Window()
{
InitializeComponent();
System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon();
ni.Icon = new System.Drawing.Icon("Main.ico");
ni.Visible = true;
ni.DoubleClick +=
delegate(object sender, EventArgs args)
{
this.Show();
this.WindowState = WindowState.Normal;
};
}
protected override void OnStateChanged(EventArgs e)
{
if (WindowState == WindowState.Minimized)
this.Hide();
base.OnStateChanged(e);
}}