【问题标题】:Wpf Window resizes when computer is lockedWpf 窗口在计算机锁定时调整大小
【发布时间】:2010-02-18 16:38:25
【问题描述】:

我将Window 设置为显示器的高度和宽度:

var r = System.Drawing.Rectangle.Union( System.Windows.Forms.Screen.AllScreens[0].Bounds, System.Windows.Forms.Screen.AllScreens[1].Bounds );
Height = r.Height;
Width = r.Width;

这一切都很好,直到我锁定我的计算机 (WIN+L),当我回来时,窗口已调整自身大小以仅在一台显示器上。

我想要做的是防止尺寸减小,因为我在第二台显示器上的画布上绘图,当发生调整大小时,这一切都丢失了..

有什么想法可以防止这种情况发生吗?

干杯!

【问题讨论】:

    标签: wpf window resize multiple-monitors


    【解决方案1】:

    您可以在 .NET 中使用解锁/锁定事件。在锁定事件期间存储您的窗口高度、宽度和位置,并在解锁事件时恢复它。确保添加“using Microsoft.Win32

    SystemEvents.SessionSwitch += new SessionSwitchEventHandler(SystemEvents_SessionSwitch);
    
    private void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e)
    {
        if (e.Reason == SessionSwitchReason.SessionUnlock)
        {
            //Put resize logic here
        }
        else if (e.Reason == SessionSwitchReason.SessionLock)
        {
            //Put size store logic here
        }
    }
    

    【讨论】:

    • @Chris。你能发布你的工作代码吗?我已经尝试过了,但无法让它工作。在SessionLock 事件被触发时,窗口已经被调整大小,或者在SessionUnlock 事件上恢复不起作用。
    猜你喜欢
    • 2013-01-24
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 2012-01-28
    相关资源
    最近更新 更多