综合应用WPF/WCF/WF/LINQ之三十四:在XBAP项目中模拟弹出一个自定义的“模态窗口”

简介:
在实际应用中,我们有时候的确需要弹出一个自定义的模态窗口。为此,我们可以采用Popup控件的方法来接近这个需求,当然,这里的“模态窗口”并不是真的窗口。
  为了方便大家学习,请 单击此处 下载该程序的代码。
  首先,我们为Page中的Grid命名,然后添加一些测试控件txtSource和button1。
  然后,我们可以添加一个Popup控件,用于显示“模态窗口”的内容。页面代码如下:
    1       < Grid  Name ="grdGrid">
    2           < Button  Height ="23"  Margin ="0,30,12,0"  Name ="button1"  VerticalAlignment ="Top"  Click ="button1_Click"  HorizontalAlignment ="Right"  Width ="75"> Button </ Button >
    3           < TextBox  Name ="txtSource"  Height ="21"  HorizontalAlignment ="Left"  Margin ="28,32,0,0" VerticalAlignment ="Top"  Width ="120" />
    4           < Popup  Name ="popup1"  Width ="300"  Height ="100">
    5               < Grid  Background ="Red">
    6                   < TextBox  Name ="txtTarget"  Height ="21"  Width ="100"  Margin ="0,30,150,0" />
    7                   < Button  Name ="btnClose"  Content ="Close"  Height ="21"  Width ="75"  Margin ="28,32,0,0"  Click ="btnClose_Click" />
    8               </ Grid >
    9           </ Popup >
   10       </ Grid >
  我们需要达到的效果有以下几个方面:
  1、实现“弹出窗口”的效果。
  2、“模态窗口”的效果,即“弹出窗口”后,其它控件均不能使用;“关闭窗口”后,其它控件均恢复使用。
  3、主窗口和“模态窗口”进行数据交换。
  为此编写代码如下。我们采用遍历grdGrid的子控件,并设置其IsEnabled属性为false的方法达到“模态”的效果。
    1      private  void button1_Click( object sender,  RoutedEventArgs e)
    2     {
    3          this.popup1.IsOpen =  true;
    4 
    5          this.txtTarget.Text =  this.txtSource.Text;
    6 
    7          foreach ( UIElement element  in  this.grdGrid.Children)
    8         {
    9             element.IsEnabled =  false;
   10         }
   11     }
   12 
   13      private  void btnClose_Click( object sender,  RoutedEventArgs e)
   14     {
   15          this.popup1.IsOpen =  false;
   16 
   17          this.txtSource.Text =  this.txtTarget.Text;
   18 
   19          foreach ( UIElement element  in  this.grdGrid.Children)
   20         {
   21             element.IsEnabled =  true;
   22         }
   23     }




本文转自 Eallies 51CTO博客,原文链接:http://blog.51cto.com/eallies/79001,如需转载请自行联系原作者
目录
相关文章
|
开发工具 Windows
[项目基础]WCF初识小结
Windows通信基础(Windows Communication Foundation,WCF)是基于windows平台下开发和部署服务的软件开发包(Software Development Kit,SDK)。
WCF基础教程(四)——数据契约实现传送自定义数据类型
WCF基础教程(四)——数据契约实现传送自定义数据类型
117 0
|
开发者 开发工具 定位技术
|
安全 数据安全/隐私保护 Windows