WPF對(duì)話框相關(guān)實(shí)現(xiàn)方法介紹
WPF對(duì)話框的實(shí)現(xiàn)方式可以用很多種。我們?cè)谶@篇文章中會(huì)為大家?guī)碛嘘P(guān)非模式對(duì)話框的一些市縣方法。希望對(duì)大家有些幫助。#t#
用VC++ 要實(shí)現(xiàn)非模式WPF對(duì)話框的,可以用下面的代碼:
- if(!IsWindow
(m_myDlg.m_hWnd)) - {
- m_myDlg.Create
(IDD_MY_DLG,this); - }
但是WPF中的窗口沒有句柄,實(shí)現(xiàn)非模式對(duì)話框就比較麻煩,特別是在主窗口中需要多次顯示某個(gè)非模式對(duì)話框時(shí)。
查了一些資料,可以在執(zhí)行非模式對(duì)話框的Closing事件的時(shí)候做些手腳:在主窗口類中定義非模式對(duì)話框(ShowImage)
- ShowImage showImage =
new ShowImage();- #region 顯示/關(guān)閉
圖像處理的窗口- delegate void
ShowImgWinHide();- private ShowImgWinHide
showImgWillHide;- private void HideShowImgWin()
- {
- this.showImage.Hide();
- }
- #endregion
在WPF對(duì)話框主窗口類的構(gòu)造函數(shù)里:
- this.showImgWillHide =
new ShowImgWinHide(this.
HideShowImgWin);- this.showImage.Closing +=
new CancelEventHandler
(ShowImg_Closing);- void ShowImg_Closing(object
sender, CancelEventArgs e)- {
- e.Cancel = true;
- Dispatcher.BeginInvoke
(System.Windows.Threading.
DispatcherPriority.Normal,
this.showImgWillHide);- }
在主窗口類的顯示非模式的事件里:
- showImage.Show();
這樣在WPF對(duì)話框主窗口就可以反復(fù)調(diào)用顯示非模式了。