c#AppBar交换用户

c#AppBar交换用户,c#,winapi,locking,appbar,switch-user,C#,Winapi,Locking,Appbar,Switch User,我正在使用win32调用编写一个应用程序栏,如SHAppBarMessage。目前,我通过以下方式处理此行为: SystemEvents.SessionSwitch += this.sessionSwitchEventHandler; 其中事件处理程序有一些代码: private void SysEventsCheck(object sender, SessionSwitchEventArgs e) { switch (e.Reason) {

我正在使用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
情况来说效果很好,由用户锁定机器然后解锁时触发。但是,当用户选择“切换用户”选项,然后稍后重新登录(触发
会话SwitchReason.ConsoleConnect
案例)时,所有窗口都会不规则地移动,AppBar会移动到错误的位置


有人对此有见解或解决方法吗?处理停靠的函数与任何其他win32 wpf应用程序栏()类似。

对不起,您希望我上载整个c#解决方案吗?这不是一个单文件程序,即使是最小的。我想再次问一下,我如何能发布更多的代码,使其完全可复制?我无法发布完整的解决方案,而且这不是一个可以在一个文件/片段中呈现的问题。那没关系。祝你好运。对不起,你希望我上传整个c#解决方案吗?这不是一个单文件程序,即使是最小的。我想再次问一下,我如何能发布更多的代码,使其完全可复制?我无法发布完整的解决方案,而且这不是一个可以在一个文件/片段中呈现的问题。那没关系。祝你好运