Silverlight浮动窗体 floatablewindow 非模态对话框
1.http://www.cnblogs.com/yinxiangpei/articles/2613913.html
说明:Silverlight的ChildWindow组件给我们的开发带来了便利,比如说我们可以用它开发自定义对话框等。然而,这同时也带来了这样一个问题,ChildWindow组件只能以Modal Window(模式窗口)的形式进行应用,这也就是说同一时间只能有一个子窗体出现在应用程序中;另外,ChildWindow组件不能进行窗体大小的自定义缩放。如果我们想要开发多窗口的应用程序的话,ChildWindow显然就不能满足我们的要求了。幸运的是,Tim Heuer为我们提供了Non-Modal Used ChildWindow组件(非模式使用子窗体——Tim Heuer称之为浮动窗体[FloatableWindow])【下载】【应用程序模板】。这样我们就能轻松地开发多窗体应用了。
组件所在的命名空间:
System.Windows.Controls
组件常用属性:
[以下属性继承自ChildWindow]
DialogResult:获取或者设置一个值用来显示子窗体的反馈内容是否被接受或是取消。
HasCloseButton:获取或者设置一个值用来显示子窗体是否包含关闭按钮。
OverlayBrush:获取或者设置被用于当子窗体打开时覆盖在父窗体上的遮盖层的笔刷。
OverlayOpacity:获取或者设置被用于当子窗体打开时覆盖在父窗体上的遮盖层的笔刷的透明度。
Title:获取或者设置子窗体的窗口标题。
[以下属性为该组件特有属性]
HorizontalOffset:获取或者设置浮动窗口出现位置的水平偏移量。
IsModal:获取浮动窗体是否为模式窗体。
ParentLayoutRoot:获取或者设置父窗体的根部布局。[使用时必须设置]
ResizeMode:获取或者设置浮动窗体的缩放模式。
VerticalOffset:获取或者设置浮动窗口出现位置的垂直偏移量。
组件常用方法:
Close:关闭子窗体。
Show:以非模式窗口形式打开子窗体并返回而不等待该子窗体关闭。[此时,IsModal为false]
Show(horizontalOffset,verticalOffset):设置出现位置后,以非模式窗口形式打开子窗体并返回而不等待该子窗体关闭。[此时,IsModal为false]
ShowDialog:以模式窗口形式打开子窗体并返回而不等待该子窗体关闭。[此时,IsModal为true]
组件常用事件:
Closed:当子窗体关闭后发生。
Closing:当子窗体正在关闭时发生。
代码段:
MainPage.xaml代码:
<UserControl x:Class="SilverlightClient.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="" d:DesignHeight="" Width="" Height=""> <Grid x:Name="LayoutRoot" Background="White" Width="" Height=""> <Button x:Name="btnCreateFloatableWindow" Margin="207,30,221,0" Content="创建浮动窗体" Height="" VerticalAlignment="Top"FontSize="" Width=""/> </Grid> </UserControl>
MainPage.xaml.cs代码:
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; namespace SilverlightClient { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); //注册事件触发处理 this.btnCreateFloatableWindow.Click += new RoutedEventHandler(btnCreateFloatableWindow_Click); } void btnCreateFloatableWindow_Click(object sender, RoutedEventArgs e) { FloatableWindow fw = new FloatableWindow();//创建浮动窗口实例 fw.ParentLayoutRoot = LayoutRoot;//指定承载浮动窗口的父窗口的根布局元素[这里为Grid x:Name="LayoutRoot"] fw.Title = "Test Floatable Window";//浮动窗口标题 fw.Content = "The time is " + DateTime.Now.ToLongTimeString();//浮动窗体内容 fw.Width = ;//浮动窗口的宽度 fw.Height = ;//浮动窗口的高度 fw.ResizeMode = ResizeMode.CanResize;//设置浮动窗口可自定义缩放 fw.Show();//以非模式窗口形式打开窗体 } } }
FloatableWindowDemo.xaml代码:
<controls:FloatableWindow x:Class="SilverlightClient.control.FloatableWindowDemo" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="clr-namespace:System.Windows.Controls;assembly=FloatableWindow" Width="" Height="" Title="FloatableWindowDemo"> <Grid x:Name="LayoutRoot" Margin=""> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Button x:Name="CancelButton" Content="Cancel" Click="CancelButton_Click" Width="" Height="" HorizontalAlignment="Right"Margin="0,12,0,0" Grid.Row="" /> <Button x:Name="OKButton" Content="OK" Click="OKButton_Click" Width="" Height="" HorizontalAlignment="Right"Margin="0,12,79,0" Grid.Row="" /> </Grid> </controls:FloatableWindow>
FloatableWindowDemo.xaml.cs代码:
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; namespace SilverlightClient.control { public partial class FloatableWindowDemo : FloatableWindow { public FloatableWindowDemo() { InitializeComponent(); } private void OKButton_Click(object sender, RoutedEventArgs e) { this.DialogResult = true; } private void CancelButton_Click(object sender, RoutedEventArgs e) { this.DialogResult = false; } } }
http://www.cnblogs.com/Kinglee/
2.
MainManage panel = new MainManage();
FloatableWindow tempFW = new FloatableWindow();
tempFW.DialogResult = true;
tempFW.Width = width;
tempFW.Height = height;
tempFW.Title = ""; //窗口标题 系统管理界面
tempFW.HasCloseButton = true; //是否显示X按钮
tempFW.ParentLayoutRoot = this.floatePanel; //父容器可以是Gird、Canvas等
tempFW.Content = panel; //窗口内容,可以是文字,也可以是UserControl等
tempFW.ResizeMode = ResizeMode.CanMinimize;
tempFW.ShowDialog();
Silverlight浮动窗体 floatablewindow 非模态对话框的更多相关文章
- mfc非模态对话框
按照我们的之前的做法,先新建工程. 把基本的内容都添加上. 形成这样一个样子: 并且进行试运行,让程序能够完成加法运算. 值的注意的是,静态文本那里要改一下名字,否则无法将成员变量进行添加. 前期准备 ...
- Windows编程之非模态对话框
1 创建非模态对话框 <1> HWNDCreateDialog( HINSTANCE hInstance, // handle to module LPCTSTRlpTemplat ...
- c#中的模态对话框和非模态对话框
模态对话框弹出窗口阻止调用窗口的所有消息响应.只有在弹出窗口结束后调用窗口才能继续.在模态窗口“关闭”后,可以读取模态窗口中信息,包括窗口的返回状态,窗口子控件的值. 非模态对话框可以在弹出窗口和调用 ...
- QT模态对话框及非模态对话框
QT模态对话框及非模态对话框 模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对 ...
- MFC 模态对话框、非模态对话框
modal dialogs与modeless dialogs,modal dialogs会让原窗体不被选中,modeless dialogs原窗体依然可以选中. 1.模态对话框的显示 DlgModal ...
- C#模态对话框和非模态对话框
模态对话框弹出窗口阻止调用窗口的所有消息响应.只有在弹出窗口结束后调用窗口才能继续.在模态窗口“关闭”后,可以读取模态窗口中信息,包括窗口的返回状态,窗口子控件的值. 非模态对话框可以在弹出窗口和调用 ...
- MFC编程 | 非模态对话框的定义
因为课程需要,会用到MFC编程,所以讲一些经验总结下,以便日后使用查询. // 非模态对话框的定义 // 通过单文档菜单调用一个非模态窗口 1.首先在工程里插入一个对话框(如:IDD_DLG_TEST ...
- MFC编程入门之十二(对话框:非模态对话框的创建及显示)
上一节讲了模态对话框及其弹出过程,本节接着讲另一种对话框--非模态对话框的创建及显示. 非模态对话框显示后,程序其他窗口仍然能正常运行,可以响应用户输入,还可以相互切换.上一讲中创建的Tip模态对话框 ...
- VC++模态对话框和非模态对话框
MFC中有两种类型的对话框:模态对话框和非模态对话框. 模态对话框是指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中其他任务.非模态对话框是指当其显示时,允许转而执行程序中 ...
随机推荐
- 想了解JAVA的,看看(转载)
较新一篇 / 较旧一篇 编辑 |删除 | 复制链接 公开 想了解JAVA的,看看(转载)2009-03-01 15:41 (分类:默认分类) 先总结一下: J2SE (Core/Desktop) ...
- Java再学习——Executor,ExecutorService,ScheduledExecutorService与Executors
1,Executor.ExecutorService和ScheduledExecutorService,它们都是接口,它们的关系是ScheduledExecutorService继承ExecutorS ...
- C语言中将字符串转换为数字的方法
C语言提供了几个标准库函数,可以将字符串转换为任意类型(整型.长整型.浮点型等)的数字.以下是用atoi()函数将字符串转换为整数的一个例子: # include <stdio. h># ...
- [经典算法] 字符串搜索Boyer-Moore
题目说明: 今日的一些高阶程式语言对于字串的处理支援越来越强大(例如Java.C#.Perl等),不过字串搜寻本身仍是个值得探讨的课题,在这边以Boyer- Moore法来说明如何进行字串说明,这个方 ...
- 【Mood-18】github 使用指南
windows下使用教程: http://www.cnblogs.com/dongdong230/p/4211221.html repository not found error问题解决(需确定gi ...
- 使用SourceTree
SourceTree是个git的GUI软件. 教程将“使用Git”那个小节可视化,更为直观. 第一次启动的时候选择忽略,然后直接进入界面. 填入git地址与注册邮箱即可 例如mindset这本书的g ...
- Http StatuCode说明
HTTP 200 - 文件被正常的访问 HTTP 302 - 临时重定向 HTTP 400 - 请求无效 HTTP 401.1 - 未授权:登录失败 HTTP 401.2 - 未授权:服务器配置问题导 ...
- hdu 4115 2-SAT判定
思路:将每个回合的平手和赢最为一对对立状态.那么后面就是2-SAT判断了. #include<iostream> #include<cstdio> #include<al ...
- CF 322E - Ciel the Commander 树的点分治
树链剖分可以看成是树的边分治,什么是点分治呢? CF322E - Ciel the Commander 题目:给出一棵树,对于每个节点有一个等级(A-Z,A最高),如果两个不同的节点有相同等级的父节点 ...
- 浅谈iOS的Autolayout
iOS 应用,通常是以界面(UI: User Interface)展示给用户. 没有界面的应用,对用户来说,将无所适从,总不至于罗列出一堆说明书吧. iOS开发,很大一部分工作量都花在界面布局上,有时 ...