益阳seo网站建设,四辩稿的套话模板,专业ppt代做,asp 网站源码WPF开发者QQ群#xff1a; 340500857 | 微信群 目前人数太多#xff0c;暂不开放01—代码如下一、添加类在“CustomControl”文件夹中加“PasswordInputBox.xaml”与文本输入框一样#xff0c;唯一的区别是将文本框改成密码框#xff1a;UserControl x:ClassLo… WPF开发者QQ群 340500857 | 微信群 目前人数太多暂不开放 01—代码如下一、添加类在“CustomControl”文件夹中加“PasswordInputBox.xaml”与文本输入框一样唯一的区别是将文本框改成密码框UserControl x:ClassLoginWindow.CustomControl.PasswordInputBoxxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006 xmlns:dhttp://schemas.microsoft.com/expression/blend/2008 xmlns:localclr-namespace:LoginWindow.CustomControlmc:Ignorabled d:DesignHeight40 d:DesignWidth300Grid!-- 提示文本 --TextBlock x:NameHint Foreground#3F000000 FontFamilyNSimSun FontSize13 VerticalAlignmentCenter Padding39,0/!-- 图标 --Image x:NameImageIcon HorizontalAlignmentLeft Width16 VerticalAlignmentCenter Margin12,0,0,0/!-- 密码框 --PasswordBox x:NamePasswordBox01 Style{StaticResource PasswordBoxStyle} PasswordChangedPasswordBox01_PasswordChanged Padding36,0/!-- 清除文本按钮 --Button x:NameClear Width40 Height40 HorizontalAlignmentRight VisibilityHidden ClickClear_Click FocusableFalseButton.TemplateControlTemplate TargetTypeButtonImage SourceImage/Clear.png Width40//ControlTemplate/Button.Template/Button/Grid
/UserControl二、修改继承并实现方法using System.Windows;
using System.Windows.Media.Imaging;namespace LoginWindow.CustomControl
{public partial class PasswordInputBox : InputBoxBase{public PasswordInputBox(){InitializeComponent();}#region 接口实现protected override void ApplyText(){PasswordBox01.Password Text;}protected override void ApplyPlaceHolder(){Hint.Text PlaceHolder;}protected override void ApplyIcon(BitmapImage icon){ImageIcon.Source icon;}#endregionprivate void PasswordBox01_PasswordChanged(object sender, RoutedEventArgs e){Text PasswordBox01.Password;// 显示或隐藏“清除按钮”与“占位文本”Clear.Visibility Text ? Visibility.Hidden : Visibility.Visible;Hint.Visibility Text ? Visibility.Visible : Visibility.Hidden;}}
}三、修改“MainWindow.xaml”在“StackPanel”中添加一个密码输入框!-- 密码输入框 --
cc:PasswordInputBox Height40 PlaceHolder密码 IconAssets/Lock.png Margin0,20,0,0/四、产生这样的效果的原因如下输入密码时会调用与private void PasswordBox01_PasswordChanged(object sender, RoutedEventArgs e)
{Text PasswordBox01.Password;
}五、方法中修改“Text”属性导致调用protected override void ApplyText()
{PasswordBox01.Password Text;
}六、文本框与密码框不同的是密码框赋值时光标会定位到起始处。解决方法就是在赋值前判断一下是否相等protected override void ApplyText()
{if (PasswordBox01.Password ! Text)PasswordBox01.Password Text;
}七、在主窗口中的“StackPanel”中添加一个登录按钮!-- 登录按钮 --
Button x:NameLoginButton Content登录 Height40 Margin0,20,0,0/
!-- 可点击文本 --
Grid Margin0 20 0 0TextBlock FontSize12Hyperlink Foreground#A1A1A1忘记密码/Hyperlink/TextBlockTextBlock FontSize12 HorizontalAlignmentRight Margin0 0 -1 0Hyperlink Foreground#4370F5 ClickSignUp_Click注册账号/Hyperlink/TextBlock
/Grid八、这种形式的文本默认带下划线通过在“Hyperlink”中添加属性来移除下划线Hyperlink Foreground#A1A1A1 TextDecorationsNone忘记密码/Hyperlink九、实现关闭按钮功能private void Window_Loaded(object sender, RoutedEventArgs e)
{// 关闭窗口((Button)GetTemplateChild(CloseButton)).Click delegate{Application.Current.Shutdown();};
}源码地址如下githubhttps://github.com/yanjinhuagood/WPFDevelopers.gitgiteehttps://gitee.com/yanjinhua/WPFDevelopers.gitWPF开发者QQ群 340500857 blogs https://www.cnblogs.com/yanjinhuaGithubhttps://github.com/yanjinhuagood出处https://www.cnblogs.com/yanjinhua版权本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。转载请著名作者 出处 https://github.com/yanjinhuagood扫一扫关注我们更多知识早知道点击阅读原文可跳转至源代码