WEB开发网
开发学院图形图像Flash Silverlight 之模态对话框的通用模拟 阅读

Silverlight 之模态对话框的通用模拟

 2008-10-24 11:46:53 来源:WEB开发网   
核心提示: 因为我们想在模态框关闭时,从父窗口中得到通知,Silverlight 之模态对话框的通用模拟(2),所以给它定义了一个 Closed 事件,并且提供了该事件的触发函数 Close().同时,我们修改后端代码文件 Login.xaml.cs 如下:using System.Windows;n

因为我们想在模态框关闭时,从父窗口中得到通知,所以给它定义了一个 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>

上一页  1 2 3 4 5  下一页

Tags:Silverlight 模态 对话框

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接