私は、操作が実行されたときに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