WPF - как создать своеобразную заставку (с таймером) - PullRequest
0 голосов
/ 25 апреля 2018

Я не знаю, как решить эту проблему:

Я хочу в своем приложении WPF что-то вроде заставки, которая появляется (скажем, через 20 секунд), если вы не взаимодействуете с программой. Я пытался исследовать, но ничего не нашел и не знаю с чего начать. У кого-нибудь есть советы для меня?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Вы можете сделать что-то вроде this , тогда все, что вам нужно сделать, это просто установить таймер в app.cs для сброса.

    private DispatcherTimer _timer;
    protected override void OnStartup(StartupEventArgs e)
    {
        _timer = new DispatcherTimer();
        _timer.Tick += Timer_Tick;
        _timer.Interval = new TimeSpan(0,0,0,20,0);
        _timer.Start();

        EventManager.RegisterClassHandler(typeof(Window),Window.MouseMoveEvent, new RoutedEventHandler(Reset_Timer));
        EventManager.RegisterClassHandler(typeof(Window), Window.MouseDownEvent, new RoutedEventHandler(Reset_Timer));
        EventManager.RegisterClassHandler(typeof(Window), Window.KeyDownEvent, new RoutedEventHandler(Reset_Timer));
    }

    private void Timer_Tick(object sender, EventArgs e)
    {
        MessageBox.Show("Ticked");
    }

    private void Reset_Timer(object sender, EventArgs e)
    {
        _timer.Interval = new TimeSpan(0,0,0,20,0);
    }

Это будет сбрасывать таймер каждый разВы перемещаете мышь, щелкаете мышью или нажимаете любую клавишу в окне.

0 голосов
/ 25 апреля 2018

Вы можете, например, запустить DispacherTimer и сбросить его, если человек двигает мышь или щелкает что-то. Если время проверки истекло, запускайте новое окно / всплывающее окно / модальное диалоговое окно с заставкой, если человек перемещает мышь или щелкает на заставке, закройте ее и вернитесь к предыдущему окну.

Что-то о DispacherTimer вы можете найти здесь: WPF Timer Like C # Timer или здесь https://msdn.microsoft.com/en-gb/library/system.windows.threading.dispatchertimer%28v=vs.90%29.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...