我有一個窗口,其中包含popup
。當執行操作時,這個彈出窗口被稱爲。現在我想例如當用戶連續數據和顯示彈出窗口insert
,關閉,因爲碰撞發生。 我的代碼是:Wpf如何自動關閉上一個彈出窗口,當啓動新的彈出窗口
public partial class AvinPopup : Window
{
static AvinPopup _popup;
static int timePopup = 0;
static string textPopUp = "";
private AvinPopup()
{
InitializeComponent();
}
private static void StartCloseTimer()
{
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds((double)timePopup);
timer.Tick += TimerTick;
timer.Start();
}
private static void TimerTick(object sender, EventArgs e)
{
DispatcherTimer timer = (DispatcherTimer)sender;
timer.Stop();
timer.Tick -= TimerTick;
_popup.Close();
_popup.popup.IsOpen = false;
}
public static void Show(string _textPopup, int _timePopup = 3)
{
timePopup = _timePopup;
textPopUp = _textPopup;
Thread newWindowThread = new Thread(ThreadStartPopup);
newWindowThread.SetApartmentState(ApartmentState.STA);
newWindowThread.IsBackground = true;
newWindowThread.Start();
}
private static void ThreadStartPopup()
{
_popup = new AvinPopup();
_popup.popup.VerticalOffset = System.Windows.SystemParameters.PrimaryScreenHeight - 200;
_popup.popup.HorizontalOffset = 100; /*System.Windows.SystemParameters.PrimaryScreenWidth +100;*/
_popup.txtPopup.Text = textPopUp;
_popup.Show();
StartCloseTimer();
System.Windows.Threading.Dispatcher.Run();
}
這裏是你的答案https://stackoverflow.com/questions/8828240/listen-to-dependencyproperty-changed-event-and-get-the-old-value – Karolis
爲什麼不檢查你的Show方法或ThreadStartPopup方法是否彈出窗口已經打開或沒有打開? – elgonzo
@elgonzo如何檢查它? – Mohadeseh