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

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

 2008-10-24 11:46:53 来源:WEB开发网   
核心提示: 这里 ShowModalDialog 和 CloseModalDialog 的实现相当简单,分别就是附加/移除相关的子窗体控件实例,Silverlight 之模态对话框的通用模拟(5),并且显示/隐藏占位控件,页面中除了 Login 窗体外,如果采用创建自定义控件等方法,也许能做到更好的封

这里 ShowModalDialog 和 CloseModalDialog 的实现相当简单,分别就是附加/移除相关的子窗体控件实例,并且显示/隐藏占位控件。

页面中除了 Login 窗体外,还调用了另一个简单的用户控件 Form2,调用方式是非常类似的。Form2 的代码如下:

Form2.xaml:

<local:ModalDialog x:Class="ModalPopupDemo.Form2"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:local="clr-namespace:ModalPopupDemo">
  <Grid>
    <Button x:Name="btnClose" Width="300" Height="200" Content="Close Me!"
        Click="btnClose_Click" FontSize="40"/>
  </Grid>
</local:ModalDialog>
  
Form2.xaml.cs:
using System.Windows;
namespace ModalPopupDemo
{
  publicpartialclass Form2 : ModalDialog
  {
    public Form2()
    {
      InitializeComponent();
    }
    privatevoid btnClose_Click(object sender, RoutedEventArgs e)
    {
      Close();
    }
  }
}

弹出 Form2 的运行效果如下:

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

至此,我们就实现了一个还算灵活的模态对话框弹出机制。这个好处在于,当我们要创建新的模态对话框时,在它的 Xaml 中只需关注其自身的显示逻辑即可,而不用关心如何显示到父窗体中,如何设置屏蔽层等细节问题,做到了一定程度的解耦。

注:本文提供了一个简单的实现方式,如果采用创建自定义控件等方法,也许能做到更好的封装,这个留待后续研究和探讨。

上一页  1 2 3 4 5 

Tags:Silverlight 模态 对话框

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