c# - 如何在两个窗口之间的 Wpf 应用程序中保持 session ?

标签 c# wpf silverlight data-binding

<分区>

我有一个 WPF 应用程序,其中有一个注册窗口。 当我单击注册选项卡时,它会打开注册窗口。 我的要求是,如果在单击注册选项卡后没有任何事件,它应该超时并移动到另一个窗口。

最佳答案

我认为你需要检查窗口上的空闲时间

在windows加载事件上

 private static DispatcherTimer idleTimer;
 private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            idleTimer = new DispatcherTimer();
            idleTimer.Interval = TimeSpan.FromSeconds(5);
            idleTimer.Tick += this.OnTimerTick;
            idleTimer.Start();
        }

计时器滴答事件

private void OnTimerTick(object sender, EventArgs e)
{
    uint idleTime = this.GetIdleTime();
    if (idleTime > 5000)
    {
        this.Close();
    }
}

空闲时间助手方法

[DllImport("User32.dll")]
private static extern bool GetLastInputInfo(ref LASTINPUTINFO dummy);


private uint GetIdleTime()
{
    LASTINPUTINFO lastUserAction = new LASTINPUTINFO();
    lastUserAction.CbSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf(lastUserAction);
    GetLastInputInfo(ref lastUserAction);
    return (uint)Environment.TickCount - lastUserAction.DwTime;
}   

internal struct LASTINPUTINFO
{        
    public uint CbSize;   
    public uint DwTime;   

}

关于c# - 如何在两个窗口之间的 Wpf 应用程序中保持 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34528656/

相关文章:

WPF ListView : Howto refresh manually?

WPF - 在 TabControl 和 ZIndex 中重叠自定义选项卡

C# WPF 应用程序 .NET 4.5 设置鼠标位置

c# - 每 10% 输入一个代码分支,直到 100%

c# - Microsoft Visual Studio 2017 不会自动完成新添加的 NuGet 包

c# - C#中的命名空间错误

c# - Silverlight:访问企业数据的最佳实践

c# - 如何在类中使用自定义类和List <>进行foreach循环

c# - 将 anchor 线添加到 Bing map 自定义图钉并允许用户拖动

c# - 如何正确加入多个异步方法的结果?