119 lines
3.0 KiB
C#
119 lines
3.0 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Windows;
|
||
using System.Windows.Controls;
|
||
using System.Windows.Data;
|
||
using System.Windows.Documents;
|
||
using System.Windows.Input;
|
||
using System.Windows.Media;
|
||
using System.Windows.Media.Imaging;
|
||
using System.Windows.Navigation;
|
||
using System.Windows.Shapes;
|
||
|
||
namespace Aitex.Core.UI.Dialog
|
||
{
|
||
/// <summary>
|
||
/// Interaction logic for NotificationDialog.xaml
|
||
/// </summary>
|
||
public partial class NotificationDialog : Window
|
||
{
|
||
public NotificationDialog()
|
||
{
|
||
InitializeComponent();
|
||
Closing += new System.ComponentModel.CancelEventHandler(NotificationDialog_Closing);
|
||
_tm.Elapsed += new System.Timers.ElapsedEventHandler(_tm_Elapsed);
|
||
_tm.Start();
|
||
|
||
BannerColor = Brushes.DodgerBlue;
|
||
}
|
||
|
||
private TimeSpan _autoCloseTime = new TimeSpan(0, 1, 0);
|
||
|
||
void NotificationDialog_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
||
{
|
||
_tm.Stop();
|
||
}
|
||
|
||
DateTime _startTime = DateTime.Now;
|
||
System.Timers.Timer _tm = new System.Timers.Timer(500);
|
||
|
||
void _tm_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
|
||
{
|
||
if (DateTime.Now - _startTime > _autoCloseTime)
|
||
{
|
||
//延迟1min后,自动关闭提示对话框
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
Close();
|
||
}));
|
||
}
|
||
else
|
||
{
|
||
//显示对话框弹出显示至今的时间
|
||
labelElapsedTime.Dispatcher.BeginInvoke(new Action(() =>
|
||
{
|
||
labelElapsedTime.Content = (_startTime + new TimeSpan(0, 1, 0) - DateTime.Now).ToString(@"hh\:mm\:ss");
|
||
}));
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// close current window
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void buttonOK_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
_tm.Stop();
|
||
Close();
|
||
}
|
||
|
||
/// <summary>
|
||
/// Message title
|
||
/// </summary>
|
||
public string MessageTitle
|
||
{
|
||
get
|
||
{
|
||
return _msgTitle.Text;
|
||
}
|
||
set
|
||
{
|
||
_msgTitle.Text = value;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Message content
|
||
/// </summary>
|
||
public string MessageContent
|
||
{
|
||
get
|
||
{
|
||
return _msgContent.Text;
|
||
}
|
||
set
|
||
{
|
||
_msgContent.Text = value;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Banner color
|
||
/// </summary>
|
||
public Brush BannerColor
|
||
{
|
||
get
|
||
{
|
||
return topGrid.Background;
|
||
}
|
||
set
|
||
{
|
||
topGrid.Background = value;
|
||
}
|
||
}
|
||
}
|
||
}
|