WP7感悟之登录DEMO

本文分享了在WP7平台上使用Silverlight开发登录DEMO的经验,通过VS2010进行项目构建,深入探讨了登录界面与TextBox控件的运用。
摘要由CSDN通过智能技术生成

打开VS2010,找到上次建立的Phone1项目。

试着运行一下,小生的机器是酷睿2 Q9400 4核CPU + 4GB RAM,还算对得起观众,但第一次运行WP7模拟器,还稍稍慢了少许,用时在6-8秒左右,比起Eclipse启动安卓模拟器,其实微软真的很给力了!
启动后,在模拟器程序列表中选择 PhoneApp1,出现程序画面:
 
 
与 Android / Apple 开发一样,VS2010在程序修改后,会自动部署到模拟器。
而VS2010的稳定性毋容置疑,毕竟是最好的IDE,没有之一,使用至今,很少发生如Eclipse因为内存、操作系统、第三方软件兼容性等莫名其妙的原因当掉的状况。
 
因此强烈建议模拟器启动后,就放着好了。人生有几个8秒,我们只争朝夕!
 
实现登录业务流程,界面前端必须有窗口给予用户输入用户名及密码。
 
1:添加控件引用
WP7的控件,大多都在使用sil控件,因此可以考虑使用sil的ChildWindow模式弹出框控件,此ChildWindow并不属于默认控件,因此需要在 项目 - 添加引用,在 X:\Program Files\Microsoft SDKs\Silverlight\v4.0\Libraries\Client 下找到 System.Windows.Controls.dll 引用到项目中。
 
2:设计登录框
在解决方案面板中 新建文件夹 Login,创建一个纵向页面。注意:因为APP程序是应用在电话上,所谓寸土寸金,因此在WinForm、Web上不太重视的可视空间问题,在APP的前端美工中占有重要地位。
为了腾出空间展示输入法,因此选择比较容易设计的纵向,而不是横向页面。
此页面应该继承自 ChildWindow 控件,这样才能成为模式对话框,show出来遮盖住下方主页面。并且为了给输入法控件,Height(高)属性必须表现为顶住最上方或附着于最下方,最后的Xaml代码如下:
 
<tk:ChildWindow 
    x:Class="PhoneApp1.Login.LoginPop"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:tk="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    
    mc:Ignorable="d" VerticalAlignment="Top" HorizontalAlignment="Left" 
    BorderBrush="Black" BorderThickness="2" HasCloseButton="False"
    d:DesignHeight="256" d:DesignWidth="480" Title="看看呗" >

    <!--LayoutRoot 是包含所有页面内容的根网格-->
    <Grid x:Name="LayoutRoot" Height="202" Background="{StaticResource PhoneBackgroundBrush}">
        <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="用户名: " VerticalAlignment="Top" Margin="20,43,0,0"/>
        <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="密    码: " VerticalAlignment="Top" Margin="20,104,0,0"/>
        <TextBox x:Name="txtUserId" VerticalAlignment="Top" Margin="117,23,8,0" Height="62" FontSize="18.667" TabIndex="1"  >
        <PasswordBox x:Name="txtPassword"  VerticalAlignment="Top" Margin="117,85,8,0" Height="62" FontSize="18.667"   TabIndex="2"  />
        <Button x:Name="btn_sub" Content="开门" Margin="117,132,214,0" d:LayoutOverrides="Width"  FontSize="18.667" BorderBrush="{StaticResource PhoneAccentBrush}" BorderThickness="1" Foreground="{StaticResource PhoneForegroundBrush}" Background="{StaticResource PhoneInactiveBrush}" Height="58" VerticalAlignment="Top" FontFamily="Tahoma" TabIndex="3" />

       <TextBlock Height="30" HorizontalAlignment="Left" Margin="252,146,0,0" Name="lbl_error" Text="" VerticalAlignment="Top" Width="184" />
    </Grid>

</tk:ChildWindow>

几个重要属性:
<tk:ChildWindow 表示继承自xmlns:tk,也就是 ChildWindow所在的dll -- System.Windows.Controls
HasCloseButton="False" 表示左上角没有那个对话框常有的 X
 
 
3:点击【进去看看】,show出登陆对话框
返回 MainPage.xaml 页面,给【进去看看】 btn_login 按钮添加点击事件代码
    private void btn_login_Click(object sender, RoutedEventArgs e)
    {
        LoginPop login = new LoginPop();
        login.Show();
    }
 
4:给登录框中【开门】添加数据校验代码
打开LoginPop页面,给【开门】 btn_sub添加点击事件 加入校验代码
 
       private void btnLogin_Click(object sender, RoutedEventArgs e)
        {
            if(txtUserId .Text .Trim ().Equals(""))
            {
                lbl_error.Text = "用户名不能为空!";
                txtUserId.Text = "";
                return;
            }
            if (txtPassword.Password.Trim().Equals(""))
            {
                lbl_error.Text = "密码不能为空!";
                txtPassword.Password = "";
                return;
            }
        }

 
至此,大功告成,打完收工!
运行后点击【进去看看】,得到如下画面:
 
 
 
感想:
从用户角度来看,微软寄予厚望的芒果系统,虽然比起WP6之前的系统有很大改进(是从0开始推翻重做)全新的系统,但还是偏向于其所擅长的中规中矩的商业UI定位,与安卓、苹果所体现夺人眼球、目不暇接的UI界面设计和应用,还是有着不小的距离。
从开发者角度看,芒果系统靠Sil(银光)与C#语言做底层,依附于VS2010平台开发,有着安卓开发不能比拟的优势,稳定性、开发效率、兼容性、语言功能都很好。只是接触未免太浅,可否叫板安卓与苹果的开发体验,不敢妄下断言。但肯定的是,WP7欠缺的 还是挺多,但愿微软强大的.NET和美刀,能把芒果推上与安卓/苹果对抗的神坛 !
程序到这里,只缺最后的目标,使用WCF服务连接后端服务器验证用户,实现登录!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值