Silverlight 之模态对话框的通用模拟
2008-10-24 11:46:53 来源:WEB开发网因为我们想在模态框关闭时,从父窗口中得到通知,所以给它定义了一个 Closed 事件。并且提供了该事件的触发函数 Close().
同时,我们还为模态框的父窗体(opener) 定义了一个接口 IModalDialogOpener.
其中顾名思义定义了打开和关闭模态框的两个方法。
好了,现在我们创建一个模态对话框试试。假设是一个登录窗体,就叫它 Login 吧——在项目中添加一个用户控件 Login.
在 Login.xaml 文件里添加了一些 Markup 后,我们修改后端代码文件 Login.xaml.cs 如下:
using System.Windows;
namespace ModalPopupDemo
{
publicpartialclass Login : ModalDialog
{
public Login()
{
InitializeComponent();
}
privatevoid btnLogin_Click(object sender, RoutedEventArgs e)
{
Close();
}
}
}
这里注意基类改成了 ModalDialog,就像在 ASP.NET 页面基类里所做的那样。并且我们在按钮的点击事件处理函数里调用了刚才定义的 Close 方法来关闭窗体。
这时 Login.xaml 是这样的:
<local:ModalDialog x:Class="ModalPopupDemo.Login"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ModalPopupDemo">
<Grid x:Name="LayoutRoot">
<Border CornerRadius="20" Background="#eeeeee" Width="300" Height="150">
<StackPanel Orientation="Vertical" Margin="10">
<StackPanel Orientation="Horizontal" Margin="10">
<TextBlock Width="100">UserName:</TextBlock>
<TextBox x:Name="txtUserName" Width="150" HorizontalAlignment="Right"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="10">
<TextBlock Width="100">Password:</TextBlock>
<TextBox x:Name="txtPassword" Width="150"/>
</StackPanel>
<StackPanel Margin="10">
<Button x:Name="btnLogin" Content="Login" Width="50"
HorizontalAlignment="Right" Click="btnLogin_Click"/>
</StackPanel>
</StackPanel>
</Border>
</Grid>
</local:ModalDialog>
Tags:Silverlight 模态 对话框
编辑录入:爽爽 [复制链接] [打 印]- ››silverlight全屏显示图片
- ››Silverlight MVVM 模式(一) 切近实战
- ››Silverlight for Windows Phone 7开发系列(1):...
- ››Silverlight for Windows Phone 7开发系列(2):...
- ››Silverlight for Windows Phone 7开发系列(3):...
- ››Silverlight for Windows Phone 7开发系列(4):...
- ››Silverlight for Symbian
- ››对话框模板RegexTest
- ››对话框打印预览及打印
- ››Silverlight3系列(四)数据绑定 Data Binding 1
- ››silverlight2 游戏 1 你能坚持多少秒
- ››Silverlight开发实践--PicZoomShow
更多精彩
赞助商链接