WPF实战学习笔记28-登录界面

这篇具有很好参考价值的文章主要介绍了WPF实战学习笔记28-登录界面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

添加登录界面UI

添加文件loginview.xaml。注意本界面使用的是md内的图标。没有登录界面的图片

<UserControl
    x:Class="Mytodo.Views.LoginView"
    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:i="http://schemas.microsoft.com/xaml/behaviors"
    xmlns:local="clr-namespace:Mytodo.Views"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:md="http://materialdesigninxaml.net/winfx/xaml/themes"
    xmlns:prism="http://prismlibrary.com/"
    mc:Ignorable="d">
    <prism:Dialog.WindowStyle>
        <Style TargetType="Window">
            <Setter Property="Width" Value="600" />
            <Setter Property="Height" Value="400" />
            <Setter Property="SizeToContent" Value="WidthAndHeight" />
            <Setter Property="ResizeMode" Value="NoResize" />
            <Setter Property="prism:Dialog.WindowStartupLocation" Value="CenterScreen" />
        </Style>
    </prism:Dialog.WindowStyle>
    <Grid Width="350" Height="400">
        <DockPanel Margin="15,5,15,20" VerticalAlignment="Center">
            <md:PackIcon
                Width="100"
                Height="80"
                HorizontalAlignment="Center"
                VerticalAlignment="Center"
                md:ThemeAssist.Theme="Dark"
                DockPanel.Dock="Top"
                Foreground="SpringGreen"
                Kind="AccountOutline" />
            <TextBlock
                Margin="0,10"
                DockPanel.Dock="Top"
                FontSize="22"
                FontWeight="Bold"
                Text="欢迎使用" />

            <TextBox
                Margin="0,10"
                md:HintAssist.Hint="请输入账号"
                DockPanel.Dock="Top"
                Text="{Binding UserName}" />
            <PasswordBox
                Margin="0,10"
                md:HintAssist.Hint="请输入密码"
                DockPanel.Dock="Top">
                <!--  pass:PassWordExtensions.PassWord="{Binding PassWord, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"  -->
                <!--<i:Interaction.Behaviors>
                    <pass:PasswordBehavior />
                </i:Interaction.Behaviors>-->
            </PasswordBox>

            <Button
                Command="{Binding ExecuteCommand}"
                CommandParameter="Login"
                Content="登录系统"
                DockPanel.Dock="Top" />

            <DockPanel Margin="0,5" LastChildFill="False">
                <TextBlock Text="注册账号">
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="MouseLeftButtonDown">
                            <i:InvokeCommandAction Command="{Binding ExecuteCommand}" CommandParameter="ResgiterPage" />
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                </TextBlock>
                <TextBlock DockPanel.Dock="Right" Text="忘记密码?" />
            </DockPanel>
        </DockPanel>
    </Grid>
</UserControl>

添加对应的viewmodel

添加文件Mytodo.ViewModels.LoginViewModel.cs

using Prism.Mvvm;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Mytodo.ViewModels
{
    public class LoginViewModel : BindableBase, IDialogAware
    {
        public string Title { get; set; } = "TOdo";
            
            
       public event Action<IDialogResult> RequestClose;

        public bool CanCloseDialog()
        {
            return true;
        }

        public void OnDialogClosed()
        {
           
        }

        public void OnDialogOpened(IDialogParameters parameters)
        {
            
        }
    }
}

注册视图

containerRegistry.RegisterForNavigation<LoginView, LoginViewModel>();

添加启动

修改文件:App.xmal.cs文章来源地址https://www.toymoban.com/news/detail-622752.html

protected override void OnInitialized()
{
    var dialog = Container.Resolve<IDialogService>();

    dialog.ShowDialog("LoginView", callback =>
                      {
                          if (callback.Result != ButtonResult.OK)
                          {
                              Environment.Exit(0);
                              return;
                          }

                          var service = App.Current.MainWindow.DataContext as IConfigureInterface;

                          if (service != null)
                          {
                              service.Configure();
                          }

                          base.OnInitialized();
                      });
}

到了这里,关于WPF实战学习笔记28-登录界面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WPF实战学习笔记13-创建注册登录接口

    添加文件 创建文件 + MyToDo.Api ​ ./Controllers/LoginController.cs ​ ./Service/ILoginService.cs ​ ./Service/LoginService.cs MyToDo.Share ./Dtos/UserDto.cs LoginController.cs ILoginService.cs LoginService.cs UserDto.cs 依赖注入 Program.cs 添加 AutoMapperProfilec.s 添加

    2024年02月15日
    浏览(37)
  • WPF实战学习笔记27-全局通知

    新建消息事件 添加文件:Mytodo.Common.Events.MessageModel.cs 注册、发送提示消息 UI增加Snackbar 修改文件:Mytodo.Views.MainView.xaml 注册消息 修改文件:Mytodo.Views.MainViewcs 构造函数添加 要注意的是,我们要发送的是文本,所以,this.skbar.MessageQueue.Enqueue函数内发送的是文本。 在需要的地

    2024年02月15日
    浏览(39)
  • WPF实战学习笔记25-首页汇总

    注意:本实现与视频不一致。本实现中单独做了汇总接口,而视频中则合并到国todo接口当中了。 添加汇总webapi接口 添加汇总数据客户端接口 总数据客户端接口对接3 首页数据模型 添加数据汇总字段类 新建文件MyToDo.Share.Models.SummaryDto 添加汇总webapi接口 添加汇总接口 添加文

    2024年02月15日
    浏览(34)
  • WPF实战学习笔记26-首页导航

    修改UI,添加单击行为,并绑定导航命令 修改文件:Mytodo.Views.IndexView.xaml ,在导航梯形添加内容 添加导航命令,并初始化 修改文件:indexviewmodel.cs 添加导航区域变量,并初始化 修改文件:indexviewmodel.cs 添加导航方法 TaskBars添加对应的导航区域 修改OnNavigate方法 当为“已完成

    2024年02月15日
    浏览(33)
  • WPF实战学习笔记16-数据加载

    新建Update事件,增加Prism事件列表 新建文件Mytodo/Common/Events/UpdateLoadingEvent.cs 新建含加载窗体基类 新建文件Mytodo/ViewModels/NavigationViewModel.cs 建立数据加载窗体扩展方法 新建文件Mytodo/Extensions/DialogExtension.cs 主窗口命名 修改文件Mytodo/Extensions/DialogExtension.cs 主窗口订阅消息 修改文

    2024年02月15日
    浏览(39)
  • WPF实战学习笔记04-菜单导航

    添加文件与文件夹 添加文件夹 ​ ./Extensions 添加文件 类型:用户控件 ./Views/IndexView.xaml ./Views/MemoView.xaml ./Views/TodoView.xaml ./Views/SettingsView.xaml ./ViewModels/IndexViewModel.cs ./ViewModels/IndexViewModel.cs ./ViewModels/IndexViewModel.cs ./ViewModels/IndexViewModel.cs ./Extensions/PrismManager.cs 建立View与Vie

    2024年02月16日
    浏览(71)
  • WPF实战学习笔记23-首页添加功能

    实现ITodoService、IMemoService接口,并在构造函数中初始化。 新建 ObservableCollectionToDoDto 、 ObservableCollectionMemoDto 类型的属性,并将其绑定到UI中 修改Addtodo、Addmemo函数,将添加功能添加 添加添加函数 修改文件:Mytodo.ViewModels.IndexViewModel.cs

    2024年02月15日
    浏览(37)
  • WPF-一个简单登录界面

    创建一个WPF工程,创建名为 Login5 的WPF项目。 添加Nuget包 MaterialDesignThemes 界面的整体布局和样式代码 MainWindow.xaml.cs

    2024年02月04日
    浏览(34)
  • WPF 极简风格登录界面

    UI使用MaterialDesign,先看界面 极简登录界面 我使用的是VS2019,选择要引入MaterialDesign包的项目,鼠标右击选择NuGet程勋包 在浏览页签中输入MaterialDesign,下载MaterialDesignColors和MaterialDesignThemes两个包   安装成功后,在已安装页签中能看到这两个UI包 可以在GitHub下载源码,源码里

    2024年02月03日
    浏览(43)
  • WPF实战学习笔记08-创建数据库

    创建文件夹 ./Context 创建文件 ./Context/BaseEnity.cs ./Context/Memo.cs ./Context/MyTodoContext.cs ./Context/Todo.cs ./Context/User.cs 创建数据对象 ./Context/BaseEnity.cs ./Context/Memo.cs ./Context/MyTodoContext.cs 创建数据库DbSet ./Context/Todo.cs ./Context/User.cs 添加nuget包 Microsoft.EntityFrameworkCore.Design Shared design-time co

    2024年02月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包