当计算机锁定时,Wpf Window会调整大小

时间:2010-02-18 16:38:26

标签: wpf window resize multiple-monitors

我的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),当我回来时窗口已经调整为仅在一台显示器上。

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

有关如何防止这种情况的任何想法?

干杯!

1 个答案:

答案 0 :(得分:1)

您可以在.NET中使用解锁/锁定事件。在锁定事件期间存储窗口高度,宽度和位置,并在解锁事件中恢复它。确保添加“使用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
    }
}