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

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

 2008-10-24 11:46:53 来源:WEB开发网   
核心提示:Silverlight 给我们带来了如同 Winform 一样便捷的开发方式,然而在桌面应用程序中一个非常重要的元素——模态对话框,Silverlight 之模态对话框的通用模拟,却不具备,而 ScottGu 的 Silverlight 教程中提供了一种简单的方法,显示如下: 下面看看如何来实现

Silverlight 给我们带来了如同 Winform 一样便捷的开发方式,然而在桌面应用程序中一个非常重要的元素——模态对话框,却不具备。

而 ScottGu 的 Silverlight 教程中提供了一种简单的方法,可以模拟出类似模态对话框的显示。

其原理跟我们在 HTML 中实现模拟的模态对话框的方法类似,无非是动态创建一个半透明的层盖住整个页面背景,让背后的元素无法操作,然后在其上显示对话框内容即可。不过,在这篇教程中创建的子窗体必须在调用者页面的 XAML 中手工声明,假如我们需要根据情况调出 n 个不同的对话框呢?这样做显然不够灵活。本文的目标是基于这种场景提供一个简单的封装,以便更方便的实现主/从调用的场景。

例子的运行效果如下:

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

点击第一个按钮后,显示如下:

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

下面看看如何来实现这个效果。

首先,我们来定义一个模态对话框的基类,它是一个用户控件(UserControl):

using System;
using System.Windows.Controls;
namespace ModalPopupDemo
{
  publicclass ModalDialog: UserControl
  {
    publicevent EventHandler Closed;
    publicvoid Close()
    {
      if (Closed !=null)
      {
        Closed(this, EventArgs.Empty);
      }
    }
  }
  publicinterface IModalDialogOpener
  {
    void ShowModalDialog(ModalDialog dialog);
    void CloseModalDialog();
  }
}

1 2 3 4 5  下一页

Tags:Silverlight 模态 对话框

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