黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

在WPF頁面中用Popup模擬模態對話框

系統 5273 0

在WPF的頁面中我們肯定會遇到這樣的需求:彈出一個對話框讓用戶進行一些選擇和輸入,當用戶在該對話框上的操作結束并關閉對話框后再返回到主頁面進行其他操作。這其實就是一個很典型的模態對話框的應用。在WPF的Window中我們可以創建一個Window并調用它的ShowDialog()方法來滿足上面的需求。可是這樣的方法在WPF頁面上卻行不通。原因是:用ShowDialog()方法彈出的對話框跟瀏覽器是相互獨立的。由于彈出的對話框跟瀏覽器分別在兩個不同的窗口中,所以并不能達到模態對話框的需求。
下面給大家介紹一種用Popup來模擬模態對話框的方法。彈出的對話框是覆蓋在WPF頁面的上面。用戶只有在關閉了對話框之后才能返回原來的頁面。
比如現在有下面一個簡單的WPF頁面。

 張軍博客  

該頁面的xaml文件也很簡單:

現在要實現這樣的功能:點擊按鈕彈出一個模態對話框讓用戶輸入一個字符串,然后在頁面的文本框里面顯示剛才用戶輸入的字符串。
下面是具體的截圖:

 張軍博客  

 張軍博客  

為了實現上面的功能,首先在xaml文件里面加上一個Popup:

在Popup里面的布局跟普通的WPF的Window和Page用的是一樣的方法。你就把Popup當成一個容器就行了。然后給BtnShowDlog加上一個Click事件。完整的xaml代碼是下面這樣的:

最后,就是在cs文件里面添加代碼:
1. 添加一個顯示和關閉對話框的方法

代碼非常簡單,就是顯示對話框的時候使原來的頁面不可用;關閉對話框的時候使原來的網頁恢復為可用狀態。
2. 為主頁面上的“Show Modal Dialog”按鈕添加Click事件

調用ShowModalDialog方法來顯示對話框
3. 為對話框的Cancel按鈕和Close按鈕添加Click事件

調用ShowModalDialog方法使對話框不可見。
4. 為對話框的OK按鈕添加Click事件

首先使對話框不可見,然后修改根據用戶在對話框上的輸入來修改主頁面上的Label的文本內容。
通過上面的方法,就可以讓對話框跟主頁面顯示在同一個瀏覽器里,并且使用戶在關閉對話框之前不能做任何操作。也就是說,實現了一個模態對話框的所有機制。

PS:剛開始接觸WPF,通過搜索和學習,覺得這是用WPF實現模態對話框的一個好方法。也許還有更好的方法,我知道了之后會共享給大家。同時如果你知道更好的方法,希望你能告訴我。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論