ChildWindow

Silverlight 3 Beta发布了!其中,ChildWindow是一个令人激动的控件。使用ChildWindow,终于在应用程序里轻松地弹出对话框,而不用Popup。接下来我就在项目里添加一个登录的对话框:

在解决方案中添加一个ChildWindow:

image

 

在Experssion Blend 3里打开LoginWindow,可以看到Silverlight已经为我们添加了一些项目:

image按照美工图,把界面修改如下:

image

 

接下来修改代码,我把弹出登录窗口放在Socket连接上服务器后:

protected void OnClientConnected(object sender, AsyncConnectionEventArgs e)
{
    Call((Action)Login);
}

Call函数把Dispatcher.BeginInvoke做了一个简单的封装,负责跨线程更新UI对象:

public void Call(Action action)
{
    Dispatcher.BeginInvoke(action);
}

真正的Login方法,向服务器发送用户输入的帐号和密码:

public void Login()
{
    LoginWindow lw = new LoginWindow();
    lw.Closed += (s2, e2) =>
    {
        if (lw.DialogResult == true)
        {
            XElement xe = new XElement("login",
                new XAttribute("name", lw.UserName),
                new XAttribute("password", lw.UserPassword));
            m_Client.Send(m_Encoding.GetBytes(xe.ToString(SaveOptions.None)));
        }
    };
    lw.Show();
}

以下是运行时的截图,很漂亮吧?!

image

 

还可以通过设置模板,来修改对话框样式:

image

 

400%下的效果图:

image 

其实美工图是这样的:

桌面事务管理系统——【登录对话框】 我们修改一下标题栏,让它看起来更像美工图:

image

最终完成界面 :

image

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值