在Silverlight里使用Enter事件

本文详细介绍了使用Silverlight技术实现登录页面的过程,并针对用户体验进行了优化。通过定义组件和交互逻辑,确保了用户在登录过程中获得流畅、直观的体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

后台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using GTA.Teaching.UI.Silverlight.ViewModels;

namespace GTA.Teaching.UI.Silverlight.Views.MainPage
{
    public partial class Login : UserControl
    {
        LoginViewModel vm;
        public Login()
        {
            InitializeComponent();
           vm= (LoginViewModel)this.DataContext;
        }

        private void Grid_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                vm.Login();
            }
        }

        private void TextBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                vm.CurrentLoginAccount = loginname.Text;
            }
        }

        private void PasswordBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                vm.CurrentPassword = loginpwd.Password;
            }
        }
    }
}


页面代码:

<UserControl x:Class="GTA.Teaching.UI.Silverlight.Views.MainPage.Login"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:tloading="clr-namespace:GTA.Teaching.UI.Silverlight.Views.Loading"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
    DataContext="{Binding Source={StaticResource Locator},Path=LoginViewModel}"
    mc:Ignorable="d">
    <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Background="#0c3150" KeyDown="Grid_KeyDown" >
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="auto"/>
            <ColumnDefinition Width="*"/> 
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="0.35*"/>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="0.65*"/> 
        </Grid.RowDefinitions>
        <Border Grid.ColumnSpan="3" Grid.RowSpan="4" Margin="-20">
            <Border.Background>
                <RadialGradientBrush Center="0.5,0.4" GradientOrigin="0.5,0.1" RadiusX="1">
                    <GradientStop Color="#CC3e77a6" Offset="0"/>
                    <GradientStop Color="#66000000" Offset="1"/> 
                </RadialGradientBrush>
            </Border.Background>
        </Border>
        <Image Grid.Row="1" Source="/GTA.Teaching.UI.Silverlight;component/Assets/images/login/gtalogo.png" Stretch="None" Margin="60,15,0,15"
               Height="32" Grid.Column="1" HorizontalAlignment="Left"/>
        <Grid x:Name="LayoutRoot" Grid.Row="2" Grid.Column="1" Width="760" Height="415">
            <Grid.Background>
                <ImageBrush ImageSource="/GTA.Teaching.UI.Silverlight;component/Assets/images/login/loginbg.png" Stretch="None"></ImageBrush>
            </Grid.Background>
            <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
                <Canvas Width="650" Height="333" >

                    <TextBlock Text="管理系统" FontSize="34" FontFamily="Microsoft YaHei" Foreground="#fcbf56" Margin="100,50,0,0"/>
                    <Grid Canvas.Left="328" Canvas.Top="9" Height="250" Width="300">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="50"></RowDefinition>
                            <RowDefinition Height="45"></RowDefinition>
                            <RowDefinition Height="45"></RowDefinition>
                            <RowDefinition Height="45"></RowDefinition>
                            <RowDefinition Height="60"></RowDefinition>
                            <RowDefinition Height="5*" />
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="0.283*"></ColumnDefinition>
                            <ColumnDefinition Width="0.717*"></ColumnDefinition>
                        </Grid.ColumnDefinitions>

                        <TextBlock Margin="0,0,10,0" HorizontalAlignment="Right" VerticalAlignment="Center" Grid.Row="1" Grid.Column="0" Text="ID号/账号:" Foreground="White" FontSize="14"></TextBlock>
                        <TextBlock Margin="0,0,10,0" HorizontalAlignment="Right" VerticalAlignment="Center" Grid.Row="2" Grid.Column="0" Text="登录密码:" Foreground="White" FontSize="14"></TextBlock>
                        <TextBlock Margin="0,0,10,0" HorizontalAlignment="Right" VerticalAlignment="Center" Grid.Row="3" Grid.Column="0" Text="用户类别:" Foreground="White" FontSize="14"></TextBlock>

                        <TextBox Name="loginname"  VerticalAlignment="Center" TabIndex="0" Grid.Row="1" Width="170" Height="25" Grid.Column="1" Text="{Binding Path=CurrentLoginAccount,Mode=TwoWay}" KeyDown="TextBox_KeyDown"></TextBox>
                        <PasswordBox Name="loginpwd"  VerticalAlignment="Center" MaxLength="18" TabIndex="1"  Grid.Row="2" Width="170" Height="25" Grid.Column="1"  Password="{Binding Path=CurrentPassword,Mode=TwoWay}" Margin="0,11,44,9" KeyDown="PasswordBox_KeyDown"></PasswordBox>
                        <ComboBox BorderBrush="#174978" Background="#86bddf"  VerticalAlignment="Center" HorizontalAlignment="Left" TabIndex="2"  ItemsSource="{Binding Path=SystemRoleCollection,Mode=TwoWay}" SelectedValue="{Binding Path=CurrentRole,Mode=TwoWay}"
                                  Grid.Row="3" Width="170" Height="25" Grid.Column="1" Name="cboUsertype" DisplayMemberPath="Value">
                        </ComboBox> 
                       
                        <Button Cursor="Hand" Margin="30,0,0,0" TabIndex="3"  Grid.Row="4" Grid.Column="1" Height="33" Width="120" IsEnabled="{Binding Path=IsBusy,Mode=TwoWay}"
                                x:Name="btnlogin" >
                            <i:Interaction.Triggers>
                                <i:EventTrigger EventName="Click">
                                    <ei:CallMethodAction TargetObject="{Binding}" MethodName="Login"></ei:CallMethodAction>
                                </i:EventTrigger>

                            </i:Interaction.Triggers>

                            <Button.Content>
                                <StackPanel Orientation="Horizontal">
                                    <Image Margin="0,0,0,0" Source="/GTA.Teaching.UI.Silverlight;component/Assets/images/login/LoginKey.png" Stretch="None"/>
                                    <TextBlock Margin="4,0,0,0" Text="登 录" VerticalAlignment="Center" FontSize="14"/>
                                </StackPanel>
                            </Button.Content>
                        </Button>
                    </Grid>
                    <TextBlock Canvas.Left="400" Canvas.Top="265" Height="23" Name="textBlock1" Text="{Binding Path=ErrorMessage,Mode=TwoWay}" Width="228" Foreground="Red" />
                </Canvas>
            </StackPanel>
        </Grid>

        <tloading:MainLoading Grid.ColumnSpan="3" Grid.RowSpan="4" x:Name="tMainLoading" Visibility="{Binding Path=LoadingVisiblity,Mode=TwoWay}"/>
    </Grid>
</UserControl>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值