1、登录界面设计要点

简洁直观的布局
登录界面应避免复杂元素,突出核心功能。通常包含用户名/邮箱输入框、密码输入框、登录按钮及可选功能(如“记住我”“忘记密码”)。保持表单字段不超过5个,减少用户认知负担。

清晰的视觉层次
通过尺寸、颜色对比区分主次操作。登录按钮使用高对比色(如蓝色或绿色),次要操作(如注册链接)采用低调设计。错误提示需醒目但友好,避免仅用红色文字,可搭配图标辅助说明。

响应式与无障碍设计
确保界面适配不同设备,输入框尺寸足够大(最小48x48px便于触控)。 密码输入框需提供“显示/隐藏”切换功能,提升可用性。

情感化微交互
登录成功时使用短暂动画(如勾选图标+渐变跳转),失败时通过微震动提示错误字段。加载状态显示进度条或骨架屏,避免静态“加载中”文字。

2、WPF 登录界面设计 

布局与控件选择
使用 Grid 或 StackPanel 布局,包含以下控件:

  • TextBox 用于用户名输入(可添加 Watermark 提示)。
  • PasswordBox 用于密码输入(隐藏明文)。
  • CheckBox 可选“记住密码”功能。
  • Button 提交登录(绑定命令或事件)。
  • 超链接控件(如“忘记密码”或“注册”)。

样式与美观性

  • 使用 Border 和 CornerRadius 实现圆角输入框。
  • 应用 LinearGradientBrush 实现背景渐变。
  • 图标集成:通过 Image 控件添加用户/密码图标。
  • 响应式设计:通过 ViewBox 或 RelativePanel 适配不同窗口尺寸。

数据绑定与验证

  • 使用 INotifyPropertyChanged 实现双向绑定(如用户名/密码属性)。
  • 输入验证:通过 IDataErrorInfo 或 ValidationRule 检查空输入或格式错误。
  • 错误提示:用 ToolTip 或 TextBlock 显示验证消息。

3、UI界面设计

完成代码如下,这就不每行代码解析了:

<pu:WindowXx:Class="HQ.fResApp.LoginWindow"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:local="clr-namespace:HQ.fResApp"xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:pu="clr-namespace:Panuon.UI.Silver;assembly=Panuon.UI.Silver"Title=""Width="800"Height="450"pu:WindowXCaption.Header=" "pu:WindowXCaption.HideBasicButtons="True"BorderThickness="0"Loaded="WindowX_Loaded"MouseLeftButtonDown="MoveWindow_MouseLeftButtonDown"ResizeMode="NoResize"WindowStartupLocation="CenterScreen"mc:Ignorable="d"><Window.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" /><ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" /><ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.DeepPurple.xaml" /><ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" /></ResourceDictionary.MergedDictionaries></ResourceDictionary></Window.Resources><Grid><Grid x:Name="signBlock"><Grid.ColumnDefinitions><ColumnDefinition /><ColumnDefinition Width="350" /></Grid.ColumnDefinitions><StackPanel Margin="20,-35,0,0"><LabelMargin="0,10"HorizontalAlignment="Left"VerticalAlignment="Top"Content="用户登录"FontFamily="Segoe UI Black"FontSize="20"Foreground="#2F4056" /><StackPanel Margin="0,45,0,0" Orientation="Horizontal"><materialDesign:PackIconWidth="30"Height="30"VerticalAlignment="Center"Foreground="#cccccc"Kind="Account" /><TextBoxx:Name="txtUName"Width="350"Margin="5"Padding="5,0,5,0"materialDesign:HintAssist.Foreground="#cccccc"materialDesign:HintAssist.Hint="输入您的登录账号"FontSize="15" /></StackPanel><StackPanel Margin="0,33,0,0" Orientation="Horizontal"><materialDesign:PackIconWidth="30"Height="30"VerticalAlignment="Center"Foreground="#cccccc"Kind="Lock" /><PasswordBoxx:Name="txtUPwd"Width="350"Margin="5"Padding="5,0,5,0"materialDesign:HintAssist.Hint="输入您的登录密码"FontSize="15" /></StackPanel><ButtonWidth="150"Height="50"Margin="-160,50,10,0"HorizontalAlignment="Center"materialDesign:ButtonAssist.CornerRadius="25"materialDesign:ShadowAssist.ShadowDepth="Depth2"Background="#5863f9"BorderBrush="#5863f9"Content="登录"FontFamily="Impact"FontSize="18"IsDefault="True" /><ButtonWidth="150"Height="50"Margin="230,-50,10,0"HorizontalAlignment="Center"materialDesign:ButtonAssist.CornerRadius="25"materialDesign:ShadowAssist.ShadowDepth="Depth2"Background="#5863f9"BorderBrush="#5863f9"Click="CloseWindow_Click"Content="退出"FontFamily="Impact"FontSize="18"IsDefault="True" /><Grid Margin="0,50,20,0"><CheckBoxx:Name="chkRemember"Margin="5,10"VerticalAlignment="Center"Content="记住密码"Cursor="Hand"FontSize="14"Foreground="#707070" /><TextBlockMargin="10"HorizontalAlignment="Right"VerticalAlignment="Center"Cursor="Hand"FontSize="14"Foreground="#5863f9"><Hyperlinkx:Name="btnForget"Click="BtnForget_Click"Foreground="#5863f9">忘记密码?</Hyperlink></TextBlock></Grid></StackPanel><StackPanelGrid.Column="1"Margin="0,-13,0,0"Background="#5863f9"Orientation="Vertical"><ButtonPadding="10"HorizontalAlignment="Right"VerticalAlignment="Top"Background="{x:Null}"BorderBrush="{x:Null}"Click="CloseWindow_Click"Cursor="Hand"ToolTip="关闭"><materialDesign:PackIcon Kind="Close" /></Button><StackPanel Margin="0,50,0,0"><TextBlockHorizontalAlignment="Center"FontFamily="Champagne &amp; Limousines"FontSize="48"FontWeight="Bold"Foreground="White"Text="蜀味正道" /><TextBlockWidth="280"Margin="0,50,0,0"HorizontalAlignment="Center"FontFamily="Champagne &amp; Limousines"FontSize="22"Foreground="White"Text="蜀味正道,您的专属管家!"TextAlignment="Center"TextWrapping="Wrap" /></StackPanel><StackPanel Margin="30,100,0,0" Orientation="Vertical"><StackPanel Orientation="Horizontal"><LabelMargin="10,0,0,0"VerticalAlignment="Center"Content="业务咨询:"FontSize="15"Foreground="#F0F0F0" /><TextBlockx:Name="linkTel"VerticalAlignment="Center"FontFamily="Champagne &amp; Limousines"FontSize="15"Foreground="#F0F0F0"TextAlignment="Center"TextWrapping="Wrap" /></StackPanel><StackPanel Orientation="Horizontal"><LabelMargin="10,0,0,0"VerticalAlignment="Center"Content="邮箱地址:"FontSize="15"Foreground="#F0F0F0" /><TextBlockx:Name="linkEmal"VerticalAlignment="Center"FontFamily="Champagne &amp; Limousines"FontSize="15"Foreground="#F0F0F0"TextAlignment="Center"TextWrapping="Wrap" /></StackPanel><StackPanel Orientation="Horizontal"><LabelMargin="10,0,0,0"VerticalAlignment="Center"Content="公司官网:"FontSize="15"Foreground="#F0F0F0" /><TextBlockVerticalAlignment="Center"FontFamily="Champagne &amp; Limousines"FontSize="15"Foreground="#F0F0F0"TextAlignment="Center"TextWrapping="Wrap"><Hyperlinkx:Name="LinkWeb"Click="LinkWeb_Click"Foreground="#F0F0F0"><TextBlock x:Name="LinkWebTxt" /></Hyperlink></TextBlock></StackPanel></StackPanel></StackPanel></Grid></Grid>
</pu:WindowX>

4、后台业务逻辑代码 

原创不易,打字截图不易,走过路过,不要错过,欢迎点赞,收藏,转载,复制,抄袭,留言,动动你的金手指,早日实现财务自由!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/93374.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/93374.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/93374.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端css学习笔记6:盒子模型

本文为个人学习总结&#xff0c;如有谬误欢迎指正。前端知识众多&#xff0c;后续将继续记录其他知识点&#xff01; 目录 前言 一、组成 ​编辑content padding border margin margin塌陷 margin合并 使用场景 标题与段落间距 卡片列表布局 二、内容溢出—overflo…

以下是对智能电梯控制系统功能及系统云端平台设计要点的详细分析,结合用户提供的梯控系统网络架构设计和系统软硬件组成,分点论述并补充关键要点:

智能电梯控制系统功能及系统云端平台设计要点一、梯控系统网络架构设计服务本地化&#xff1a;电梯门禁服务器本地化部署&#xff1a;核心服务器部署在项目本地&#xff0c;确保数据安全、运维及时性&#xff0c;减少网络依赖。需支持本地独立运行&#xff0c;避免云端故障影响…

全球电商业财一体化:让出海品牌实现“看得见的增长“

内外贸并行的数字化挑战在数字经济浪潮下&#xff0c;中国品牌呈现"双轮驱动"增长态势&#xff1a;一边深耕天猫、京东、抖音等国内主流平台&#xff0c;一边通过Amazon、Tiktok、eBay、Temu等渠道拓展全球市场。然而&#xff0c;多平台、多币种、多地区的复杂运营环…

Nacos-5--Nacos2.x版本的通信原理

Nacos 2.x引入了gRPC作为其主要的通信协议&#xff0c;取代1.x版本中的HTTP长轮询和UDP通信方式&#xff0c;显著提升了性能、实时性和稳定性。gRPC是一个高性能、开源的远程过程调用&#xff08;RPC&#xff09;框架&#xff0c;它基于HTTP/2标准设计&#xff0c;并使用Protoc…

如何以开发者的身份开发出比python更好的应用软件?

作为一名拥有多年软件架构经验的开发者,我见证了Python从实验室脚本语言成长为数字时代基础设施的完整历程。2008年我参与欧洲核子研究中心的粒子数据分析系统时,Python还是辅助工具,而今天它已成为驱动LIGO引力波探测的核心引擎——这种跃迁绝非偶然。 一、Python的巅峰应…

zynq代办事项

测试verilog按键 1.0 按键->队列->串口 1.1 按键模块ming_key包括 按下,松开,单击,双击,长按,事件 1.2 队列模块ming_fifo存储按键发出的[事件和事件戳] 1.3 顶层模块TOP 轮询 ming_fifo,将读到的事件用串口封装成数据包发给串口助手 测试zynq的M_AXI_GP0 1.0 用axi_li…

【Redis】Redis典型应用——缓存

目录 一.什么是缓存 二.使用Redis作为缓存 2.1.关系型数据库的缺点 2.2.使用Redis作为MySQL的缓存 三. 缓存更新策略:识别热点数据 3.1.定期更新 3.2.实时生成 四.缓存的使用注意事项 4.1.缓存预热(Cache preheating) 4.2.关于缓存穿透 (Cache penetration) 4.3..关…

C#控制台项目,鼠标点击后线程会暂停

C#控制台应用程序&#xff0c;点击后就会暂停运行&#xff0c;但是我想让它运行不受鼠标点击的影响。 下面是程序演示&#xff1a;class Program{static void Main(string[] args){Console.WriteLine("Hello");int index 0;while(true){Console.WriteLine($"in…

云计算-实战 OpenStack 私有云运维:服务部署、安全加固、性能优化、从服务部署到性能调优(含数据库、内核、组件优化)全流程

简介 此次围绕OpenStack 私有云平台的运维与开发展开,涵盖了从核心服务安装到深度优化的全流程实战内容。文中详细介绍了 OpenStack 各关键组件(如 Keystone、Glance、Nova、Neutron、Cinder 等)的安装部署方法,包括使用脚本快速搭建服务、创建用户、上传镜像、配置网络等…

流水的 AI,铁打的腾讯

腾讯 昨天腾讯公布了 2025 年第二季度的业绩报告。 就还是那只鹅&#xff0c;就还是那个超预期。 总营收 1845 亿&#xff0c;同比增长 15%&#xff1b;净利润 556.3 亿&#xff0c;同比增长 17%&#xff1b;经营利润 692.5 亿&#xff0c;同比增长 18%。 这里面最炸裂的&#…

再回C的进制转换--负数

概念 负数在计算机中以补码的形式保存&#xff0c;以int类型的-15为例&#xff0c;求补码先对-15取绝对值&#xff0c;然后对其按位取反(得到反码)&#xff0c;然后加1&#xff0c;就可以得到其的补码。 二进制的补码 -15 (取绝对值)–> 15 --> (十六进制表示)0x000f (按…

项目绩效域-笔记

一、项目管理绩效域 1. 价值驱动的项目管理知识体系 1&#xff09;体系构成要素 核心转变&#xff1a;从预测型生命周期&#xff08;计划驱动&#xff09;转向价值驱动体系&#xff0c;融合预测型和敏捷方法组成要素&#xff1a; 12个项目管理原则&#xff08;基础&#xff09;…

怎么判断晶振的好坏,有什么简单的办法

今天来聊聊晶振的好坏判断方法&#xff0c;3个步骤轻松搞定。外观检查&#xff1a;先看脸&#xff0c;再看脚晶振体积虽小&#xff0c;但问题往往写在“脸上”。第一步&#xff0c;用肉眼观察&#xff1a;裂痕与破损&#xff1a;晶振表面如果有明显裂纹或缺口&#xff0c;大概率…

mac下载maven并配置,以及idea配置

文章目录下载配置settingsidea配置下载 https://maven.apache.org/download.cgi 我下的3.6.3 https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/ 配置 open ~/.zprofile添加&#xff0c;根据自己安装路径修改 export MAVEN_HOME/Users/xxx/tools/apache-mave…

基于机器视觉的车道线检测与跟踪关键技术研究

摘 要 随着自动驾驶技术的迅速发展&#xff0c;车道线检测与跟踪技术在提高道路安全性和驾驶自动化水平方面发挥着至关重要的作用。本文针对基于机器视觉的车道线检测与跟踪关键技术进行了深入研究&#xff0c;旨在提升车道线检测的准确性与系统的实时响应能力。通过采用先进的…

flutter 跨平台编码库 protobuf 工具使用

1 安装依赖 dependencies:protobuf: ^3.1.0 # 或最新版本flutter pub get安装成功之后 1 lib 下创建文件夹 testProto 2 创建文件Student.proto 文件Student.proto 文件内容 syntax "proto3"; package example2;//导入其它proto文件 import "testProto/user.…

【网络】网络模型总结复盘

1.OSI七层模型是什么&#xff1f;答&#xff1a;是网络通信分层模型&#xff0c;规范不同设备的通信流程应用层 如HTTP FTP文件传输 DNS域名解析 SSH远程登录 为用户提高服务表示层 对数据进行格式转换加密 如TLS/SSL会话层 负责建立会话 管理和终止会话传输层 提高数据的安全问…

vscode的ws环境,esp32s3连接wifi

注意大小写&#xff0c;wsl&#xff08;也就是linux环境&#xff09;严格区分大小写。有帮助记得订阅专栏点赞&#xff0c;当前不定期持续更新。 一、文件夹格式 oled1/ # 项目根目录 ├─ main/ # 主程序文件夹 │ ├─ main.c …

面试题:如何用Flink实时计算QPS

Flink 实时计算 QPS 面试题题目&#xff1a; 假设某互联网应用日活用户 100 万&#xff0c;每天产生 1 亿条数据&#xff08;日志/事件&#xff09;&#xff0c;要求使用 Apache Flink 实现实时计算系统的 QPS&#xff08;Queries Per Second&#xff09;&#xff0c;并考虑以下…

Pytest项目_day12(yield、fixture的优先顺序)

yield yield可以用作fixture的后置操作 yield的执行位置和scope的范围设置有关 当我们将scope设置为function时&#xff0c;yield就会在方法结束时执行yield后的代码yield还可以返回数据&#xff0c;类似于return&#xff0c;不过yield之后的代码会执行&#xff0c;而return不会…