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(horizontalOffsetverticalOffset):设置出现位置后,以非模式窗口形式打开子窗体并返回而不等待该子窗体关闭。[此时,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 非模态对话框的更多相关文章

  1. mfc非模态对话框

    按照我们的之前的做法,先新建工程. 把基本的内容都添加上. 形成这样一个样子: 并且进行试运行,让程序能够完成加法运算. 值的注意的是,静态文本那里要改一下名字,否则无法将成员变量进行添加. 前期准备 ...

  2. Windows编程之非模态对话框

    1  创建非模态对话框 <1>  HWNDCreateDialog(  HINSTANCE hInstance,  // handle to module LPCTSTRlpTemplat ...

  3. c#中的模态对话框和非模态对话框

    模态对话框弹出窗口阻止调用窗口的所有消息响应.只有在弹出窗口结束后调用窗口才能继续.在模态窗口“关闭”后,可以读取模态窗口中信息,包括窗口的返回状态,窗口子控件的值. 非模态对话框可以在弹出窗口和调用 ...

  4. QT模态对话框及非模态对话框

    QT模态对话框及非模态对话框 模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对 ...

  5. MFC 模态对话框、非模态对话框

    modal dialogs与modeless dialogs,modal dialogs会让原窗体不被选中,modeless dialogs原窗体依然可以选中. 1.模态对话框的显示 DlgModal ...

  6. C#模态对话框和非模态对话框

    模态对话框弹出窗口阻止调用窗口的所有消息响应.只有在弹出窗口结束后调用窗口才能继续.在模态窗口“关闭”后,可以读取模态窗口中信息,包括窗口的返回状态,窗口子控件的值. 非模态对话框可以在弹出窗口和调用 ...

  7. MFC编程 | 非模态对话框的定义

    因为课程需要,会用到MFC编程,所以讲一些经验总结下,以便日后使用查询. // 非模态对话框的定义 // 通过单文档菜单调用一个非模态窗口 1.首先在工程里插入一个对话框(如:IDD_DLG_TEST ...

  8. MFC编程入门之十二(对话框:非模态对话框的创建及显示)

    上一节讲了模态对话框及其弹出过程,本节接着讲另一种对话框--非模态对话框的创建及显示. 非模态对话框显示后,程序其他窗口仍然能正常运行,可以响应用户输入,还可以相互切换.上一讲中创建的Tip模态对话框 ...

  9. VC++模态对话框和非模态对话框

    MFC中有两种类型的对话框:模态对话框和非模态对话框.  模态对话框是指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中其他任务.非模态对话框是指当其显示时,允许转而执行程序中 ...

随机推荐

  1. 1.7.4.1 Function Queries-函数查询

    1 . Function Queries 函数查询使你可以使用一个或者多个数字字段的实际的值生成一个关联的得分(score),函数查询支持DixMax,eDisMax,标准的查询解析. 函数查询使用函 ...

  2. 【HTML5 1】39个让你受益的HTML5教程

    闲话少说,本文作者为大家收集了网上学习HTML5的资源,期望它们能够帮助大家更好地学习HTML5. 好人啊! 只是,作者原来说的40个仅仅有39个,由于第5个和第8个是反复的. 原文在此! 1. 五分 ...

  3. android 内存优化以及性能优化相关问题

    最近做一个android 的应用程序 总是出现内存高 和cpu高的问题困扰了好多天. 下面为自己从网上总结的和自己找到的问题. 1. WebView  控件: 使用了 WebView 控件一定要注意清 ...

  4. Android 常用 adb 命令

    查看原文:http://blog.csdn.net/u010818425/article/details/52266593 (一)基础操作 安装app adb install -r xxx.apk / ...

  5. android基础学习之布局

    我学习android第一步接触的就是布局的学习.布局是androidUI的基础,是重中之重.总的来说android有6种布局,分别是线性布局LinearLayout.相对布局RelativeLayou ...

  6. [Android]天气App 2 项目搭建

       对于天气App,为了简化一些功能,暂时模仿MUUI系统提供的那个App.    本项目需要引入本人经常使用的一个工具库DroidTool,这个是本人根据工作中,收集到一些工具类,下载地址.    ...

  7. angularJs中图表功能(有集成框架)-angular-flot

    1.柱状图和折线图的数据格式: $scope.Chart.data = [ { label: "离线", data: [[0, 2]] }, { label: "在线&q ...

  8. DWZ框架Ajax无刷新表单提交处理流程

    DWZ框架Ajax无刷新表单提交处理流程是: 1.       ajax表单提交给服务器 2.       服务器返回一个固定格式json结构 3.       js会调函数根据这个json数据做相应 ...

  9. Python执行系统命令的方法

    Python中执行系统命令常见方法有两种: 两者均需 import os (1) os.system # 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 system(command) ...

  10. jQuery.Hotkeys - lets you watch for keyboard events anywhere in your code supporting almost any key combination

    About jQuery Hotkeys is a plug-in that lets you easily add and remove handlers for keyboard events a ...