我正在使用 win32 调用(如SHAppBarMessage
. 目前我通过这样做来处理这种行为:
SystemEvents.SessionSwitch += this.sessionSwitchEventHandler;
事件处理程序有一些代码:
private void SysEventsCheck(object sender, SessionSwitchEventArgs e)
{
switch (e.Reason)
{
case SessionSwitchReason.SessionUnlock:
case SessionSwitchReason.ConsoleConnect:
function_to_dock_app_bar();
break;
}
}
这适用于这种SessionSwitchReason.SessionUnlock
情况,由用户锁定他们的机器然后解锁它触发。但是,当用户选择“切换用户”选项,然后稍后重新登录(触发SessionSwitchReason.ConsoleConnect
案例)时,所有窗口都会不规律地移动,并且 AppBar 会移动到不正确的位置。
有没有人对此有见识或解决方法?处理停靠的功能类似于任何其他win32 wpf应用栏(例如)