none
Topmost在Win7不生效,无法置顶 RRS feed

  • 问题

  • 一个wpf桌面程序,是自启动的,窗口需要最大化并置顶,使用了如下代码来实现

    [Conditional("RELEASE")]
            private void MaxWindow()
            {
                try
                {
                    if (!Topmost)
                    {
                        WindowState = WindowState.Normal;
                        WindowStyle = WindowStyle.None;
                        ResizeMode = ResizeMode.NoResize;
                        Topmost = true;
    
                        Left = 0.0;
                        Top = 0.0;
                        Width = SystemParameters.PrimaryScreenWidth;
                        Height = SystemParameters.PrimaryScreenHeight;
                    }
    
                    if (!IsActive)
                    {
                        Activate();
                    }
                }
                catch(Exception err)
                {
                    Log.Write(LogLevel.Error, err.Message);
                }
            }

    如果是windows7/10启动后自动登录到桌面,程序自启动后都可以实现全屏置顶。

    但如果是注销帐号后再次登录,win10系统下可实现全屏置顶,win7系统下程序会被任务栏档住,只能全屏不能置顶。

    在程序启动后按"win"键(做了定时检测全屏置顶状态),win10系统下也可以自动恢复全屏置顶,而win7系统下就会被任务栏档住。如下图:

    是Topmost对于win7无效,还是win7的置顶要使用其它方式?


    http://www.yuzifu.net


    • 已编辑 yuzifu 2017年12月6日 2:16
    2017年12月6日 1:47

全部回复