WPF 显示模态窗口和窗体

《WPF编程宝典——使用C# 2008和.NET 3.5(第2版)》第25章与Windows窗体的互操作,本章将介绍用于集成Windows窗体和WPF内容的不同策略。还将分析如何在应用程序中使用两种类型的窗口,并且还将研究更加精彩的在一个窗口中混合来自两个平台内容的技巧。但是在深入分析WPF和Windows窗体之间的互操作之前,先后退一步,分析应当(或不应当)使用WPF互操作功能的原因是值得的。本节为大家介绍显示模态窗口和窗体。

AD:2013云计算架构师峰会课程资料下载

 

25.2.3  显示模态窗口和窗体

从WPF应用程序中显示模态窗体很简单。可以使用与在Windows窗体项目中相同的代码。例如,如果有一个名称为Form1的窗体类,可以使用下面的代码以模态的方式显示这个窗口:

  1. Form1 frm = new Form1();  
  2. if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)  
  3. {  
  4. MessageBox.Show("You clicked OK in a Windows Forms form.");  

您可能已注意到,Form.ShowDialog( )方法的工作方式和WPF的Windows.ShowDialog( )方法(在第8章中介绍过该方法)的工作方式稍微不同。Form.ShowDialog( )方法返回DialogResult枚举,而Windows.ShowDialog( )方法返回true、false或null。

相反的技巧-- 从窗体中显示一个WPF窗口-- 同样很容易。同样,可以简单地与Windows类的公有接口进行交互,其余的问题由WPF负责解决:

  1. Window1 win = new Window1();  
  2. if (win.ShowDialog() == true)  
  3. {  
  4. MessageBox.Show("You clicked OK in a WPF window.");  
时间: 2024-10-10 18:57:27

WPF 显示模态窗口和窗体的相关文章

angularjs-angular+uikit ng-repeat中加模态窗口点击<a data-uk-modal>会自动重载页面这是为什么

问题描述 angular+uikit ng-repeat中加模态窗口点击<a data-uk-modal>会自动重载页面这是为什么 angular+uikit ng-repeat中加模态窗口点击 <a href = ""#XXX"" data-uk-modal> 会自动重载页面然后我继续点相同的 <a href = ""#XXX"" data-uk-modal> 模态窗口才显示出来,之后如果

[WPF疑难] 模式窗口被隐藏后重新显示时变成了非模式窗口

现象: 大家可以试试下面这个很有趣但会带来Defect的现象:当我们将子窗口按照ShowDialog()的方式显示出来的时候,很明显该窗口是模式化的(即主窗口等待该窗口的返回,主窗口将不相应用户输入),但如果此时将子窗口的Visibility设置成Visibility.Hidden来隐藏窗口,然后再将Visibility设置成Visibility.Visible来再次显示子窗口,此后子窗口便是非模式的了(即主窗口和子窗口一样相应用户输入) 案例: 当用户不操作软件达到一定的时间间隔后,软件会隐藏

java-Java调用含窗口的OCX显示在Java的窗体中

问题描述 Java调用含窗口的OCX显示在Java的窗体中 现在遇到的情况是:有个带窗口的OCX提供一些接口给Java程序调用,需求是在Java实现的窗口调用某个接口的时候,就呈现OCX里某一个窗口,已知这个OCX窗口不是弹出框,需要有个父窗口进行承载 问题来了:接口调用成功,可是窗口并没有出现,接口的返回值是正常的,但是该弹出来的窗口没有弹出 解决方案 Java调用ocx控件以及dlljava项目中ocx控件的调用 解决方案二: 仍然是没用过的工具.不过猜测是不是没有调用"显示方法"

java模态窗口显示默认数据

问题描述 如图点击企业联系人时,会弹出模态窗口,如何判断,当只有一个联系人的时候,会直接在页面上显示 解决方案 解决方案二:来人啊,帮个忙啊

自定义jquery模态窗口插件无法在顶层窗口显示问题_jquery

自定义一个jquery模态窗口插件,将它集成到现有平台框架中时,它只能在mainFrame窗口中显示,无法在顶层窗口显示. 解决这个问题的办法: 通过以下代码就可能实现在顶层窗口弹窗 复制代码 代码如下: $(window.top.document.body).append("<div id='dialog'></div>");

使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体_jquery

模态窗体已经成为Web开发人员设计界面时经常要使用的传输数据的方式.通过模态窗口,可以提高网站的可用性.正好项目的需要,有个客户想要模态弹出的窗体来提交网站的反馈,经过一番测试实现了,我使用jQuery fancybox插件来创建一个漂亮的模态窗体,提交表单的数据在服务器端实现Ajax调用.你可以在你的邮件里收到用户发送的反馈消息 html代码 header部分主要的JS文件如下引入jquery代码和fancybox代码 复制代码 代码如下: <script type="text/java

使用div仿&amp;#106avascript模态窗口

虽然和本blog的内容无关,但是还是写出来吧,希望对大家有帮助前几天在博客园看到有人说模态窗口在ie7里面显示出现地址栏,其实这本是一件好事,而且ie的模态窗口是ie的函数,ff.opera等都不支持,我评论的原话 只是ie7增强的安全特性罢了,这个世界还真奇怪,有人说ie的安全性不强,天天骂微软,还支持ff说什么用了ff就不会被强奸,微软增强了安全性,又有人说这样增加的安全性不好,真是难伺候 你要用模态窗口ff是根本就打不开,因为那个是ie特有的函数,ff是没有的,另外楼上说的很对加到trus

使用div仿javascript模态窗口

javascript 虽然和本blog的内容无关,但是还是写出来吧,希望对大家有帮助前几天在博客园看到有人说模态窗口在ie7里面显示出现地址栏,其实这本是一件好事,而且ie的模态窗口是ie的函数,ff.opera等都不支持,我评论的原话 只是ie7增强的安全特性罢了,这个世界还真奇怪,有人说ie的安全性不强,天天骂微软,还支持ff说什么用了ff就不会被强奸,微软增强了安全性,又有人说这样增加的安全性不好,真是难伺候 你要用模态窗口ff是根本就打不开,因为那个是ie特有的函数,ff是没有的,另外楼

模态窗口其实就是在当前窗口调用系统的消息循环,响应用户的操作,将相关的消息发送到对应的窗口(转)

  上周准备在公司内部转岗,面了3个部门windows客户端相关的工作,最终拿到3个Offer,主要涉及C++和Windows两大块内容,C++的题目基本都答上了,Windows一直都是我的弱项,在这里记录一下Windows相关的题目.有些答不上的问题就没列出来,还有些问题忘了,下面的答案有些大部分是我自己的理解,有些是直接从网上copy的,有问题大家可以讨论. 1:GetMessage和PeekMessage的区别? GetMessage:获取消息队列中的一个消息,存入MSG中,并从消息队列中