【发布时间】:2025-12-03 07:45:01
【问题描述】:
我有一个包含popup的窗口。当执行操作时,这个弹出窗口被调用。现在我想例如当用户连续insert数据并显示弹出窗口时,之前调用的弹出窗口关闭。因为发生冲突。
我的代码是:
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();
}
【问题讨论】:
-
为什么不检查你的 Show 方法或 ThreadStartPopup 方法是否已经打开了弹出窗口......?
-
@elgonzo 如何查看?