去掉if (this.WindowState == System.Windows.WindowState.Minimized)
这个判断,无论如何都执行this.WindowState = System.Windows.WindowState.Normal;

解决方案 »

  1.   


                        var intptr = Z.Core.Helper.Win.GetHandle(this);
                        var b = Z.Core.Helper.Win.SetForegroundWindow(intptr);我拿Windows API
    都不行,反回是true了
            /// <summary>
            /// 设置此窗体为活动窗体
            /// </summary>
            /// <param name="hWnd"></param>
            /// <returns></returns>
            [DllImport("user32.dll", EntryPoint = "SetForegroundWindow")]
            public static extern bool SetForegroundWindow(IntPtr hWnd);        /// <summary>
            /// 得到窗体句柄
            /// </summary>
            /// <param name="window"></param>
            /// <returns></returns>
            public static IntPtr GetHandle(System.Windows.Window window)
            {
                return new System.Windows.Interop.WindowInteropHelper(window).Handle;
            }
      

  2.   


            private void SysTray_StateChanged(object sender, EventArgs e)
            {
                if (this.WindowState == WindowState.Minimized)
                {
                    //这里实现最小化的时候不在任务栏中显示,而只是显示一个托盘
                    this.Visibility = Visibility.Hidden;
                }
                else
                {
                    this.Visibility = Visibility.Visible;
                }
            }
      

  3.   

    没有用的啊这个事件没有执行,就算有执行也没用,因为就像代码我写在那个MouseClick里面一样没有效果
      

  4.   

    你是wpf程序吗?这个NotifyIcon你是根据什么原理实现的,最好在给些其它部分的代码,比如事件触发部分的程序
      

  5.   

    NotifyIcon这个我在WPF中没有找到,然后我到网上去找实现的,说用Window.Form的
    也就是我现在这个是Winform的
    我现在代码有点乱,到时我整理好再发一份
    谢谢