在Silverlight中写一个d窗功能并不难,但必定也要自己写代码,定义模式去实现,而
在SilverlightToolKit3中,提供了一个叫“ChilDWindow”的类,位于:
使用它,我们可以很容易的将任何想放在新窗口中显示的内容,以d窗的形式显示显示。
下面演示一下效果:
1. 点击d窗按钮。
2. d出子窗体,并输入数据。
3. 点击“提交”按钮返回父窗体。
下面就简要介绍一下其用法,如果之前我们执行了Silverlight ToolKit 3 的安装包。我
们只要在相应的SL应用项目上击鼠标右键,选“添加”--> "新建项",就可以在d出窗口中
看到新加了一个“Silverlight Child Window”模板,这时我们选中它,并将新创建的子窗口
命名为:MyChilDWindow.xaml
这样,我们在可以在这个新建的XAML文件中加入任何我们想d窗显示的元素了,比如:
< controls:ChilDWindow x:Class ="Silverlight_ToolKit3.MyChilDWindow"
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=System.windows.Controls"
WIDth ="400" Height ="180" >
< GrID x:name ="LayoutRoot" Background ="White" >
< GrID.ColumnDeFinitions >
< ColumnDeFinition WIDth ="100" />
< ColumnDeFinition WIDth ="300" />
</ GrID.ColumnDeFinitions >
< GrID.RowDeFinitions >
< RowDeFinition Height ="50" />
< RowDeFinition Height ="50" />
< RowDeFinition Height ="50" />
</ GrID.RowDeFinitions >
< TextBlock Text ="用户名:" GrID.Column ="0" GrID.Row ="0" />
< TextBox WIDth ="200" x:name ="Username" GrID.Column ="1" GrID.Row ="0" Height ="30" />
< TextBlock Text ="密码:" GrID.Column ="0" GrID.Row ="1" />
< TextBox WIDth ="200" x:name ="PassWord" GrID.Column ="1" GrID.Row ="1" Height ="30" />
< StackPanel GrID.ColumnSpan ="2" OrIEntation ="Horizontal" HorizontalAlignment ="Center" GrID.Row ="2" >
< button Content ="提交" WIDth ="75" Height ="25" x:name ="submit" Click ="submit_Click" />
< button Content ="取消" WIDth ="75" Height ="25" x:name ="Cancel" Click ="Cancel_Click" />
</ StackPanel >
</ GrID >
</ controls:ChilDWindow >
我们看到上面的XAML中的按钮有两个单击事件,分别对应提交和取消 *** 作,相应事件处理
代码如下:
private voID submit_Click( object sender, RoutedEventArgs e)
{
this .DialogResult = true ;
}
private voID Cancel_Click( object sender, RoutedEventArgs e)
{
this .DialogResult = false ;
}
代码比较简单,主要是将当前对话框的结果(关闭时状态)传递给父窗口。
下面我们就来看一下父窗口是如果实现d窗功能的。
首先我们在父窗口放置一个button元素,并将Click事件进行绑定如下:
< button Content ="显示子窗口" Height ="23" GrID.Column ="0" GrID.Row ="0" Click ="ShowWindow_Click" />
然后向父窗口的XAML.CS文件中复制如下代码:
MyChilDWindow myChilDWindow = new MyChilDWindow();
public MainPage()
{
InitializeComponent();
// 子窗口事件绑定
myChilDWindow.Closed += new EventHandler(myChilDWindow_Closed);
}
#region 子窗口事件代码
voID myChilDWindow_Closed( object sender, EventArgs e)
{
if (myChilDWindow.DialogResult == true )
Message.Text = string .Format( " 用户名:{0} 密码:{1} " , myChilDWindow.Username.Text, myChilDWindow.PassWord.Text);
else
Message.Text = " 取消 " ;
}
private voID ShowWindow_Click( object sender, RoutedEventArgs e)
{
myChilDWindow.Title = " 子窗口信息 " ;
myChilDWindow.OverlayBrush = new SolIDcolorBrush(colors.Yellow);
myChilDWindow.Opacity = 0.9 ;
myChilDWindow.HasClosebutton = true ;
myChilDWindow.Foreground = new SolIDcolorBrush(colors.Red);
myChilDWindow.FontSize = 14 ;
// myChilDWindow.OverlayOpacity = 0.9;
// myChilDWindow.IsEnabled = false;
myChilDWindow.Show();
}
#endregion
上述代码首先声明一个MyChilDWindow实例,用于进行相关d窗 *** 作。然后在构程方法中
对该实例的Closed事件绑定事件处理代码“myChilDWindow_Closed ”, 在该事件中我们可
以通过对DialogResult的判断(之前子窗口中已通过相关CliCK事件进行了绑定),来获取子
窗口中的输入数据信息并进行显示。
最后的事件就是d窗事件代码了,在这里可以对窗体背景的透明度Opacity,子窗口是否包
括关闭按钮(窗体右上方),子d体是否有效等属性进行设置,并最终调用Show()方法来显示
子窗体。
好了,今天的内容就先到这里了。
源码下载:http://files.cnblogs.com/daizhj/Silverlight_ToolKit3.rar
原文链接:http://www.cnblogs.com/daizhj/archive/2009/07/23/1529323.html
作者: daizhj,代震军
Tags: silverlight,ChilDWindow,子窗体,d窗
网址: http://daizhj.cnblogs.com/
总结以上是内存溢出为你收集整理的使用Silverlight Toolkit实现d窗---ChildWindow全部内容,希望文章能够帮你解决使用Silverlight Toolkit实现d窗---ChildWindow所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)