WPF实现一个简单好用的锁屏

1.打开Visual Studio新建一个WPF应用,新建一个页面,如下图:在这里插入图片描述
2.MainWindow界面(触发锁屏),如下图:在这里插入图片描述
(1)MainWindow.xaml 代码如下:

<Window x:Class="Aock.MainWindow"
        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:local="clr-namespace:Aock"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Button Content="锁屏" HorizontalAlignment="Left" Margin="328,163,0,0" VerticalAlignment="Top" Width="168" Click="Button1_Click" Height="73" FontSize="24" Background="#FF98CC8B" BorderBrush="#FFAE3D3D" Foreground="#FFA54242"/>

    </Grid>
</Window>

(2)MainWindow.xaml.cs 代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Aock
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        Window1 Window1 = new Window1();
        public MainWindow()
        {
            InitializeComponent();
            Window1.Visibility = Visibility.Hidden;
        }

        private void Button1_Click(object sender, RoutedEventArgs e)
        {
            
            Window1.Visibility = Visibility.Visible;

        }

    }
}

3.Window1界面(触发解锁,本例子设定密码为1234),如下图:
在这里插入图片描述

(1)Window1.xaml,代码如下

<Window x:Class="Aock.Window1"
        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:local="clr-namespace:Aock"
        mc:Ignorable="d"
        Title="Window1" Height="250" Width="400" Background="#FFE47777">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="80*"/>
            <ColumnDefinition Width="51*"/>
        </Grid.ColumnDefinitions>
        <Button Content="解锁" HorizontalAlignment="Center" Margin="185,128,143.333,72.667" VerticalAlignment="Center" Width="65" Click="Button3_Click" IsDefault="True" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" Grid.ColumnSpan="2"/>
        <PasswordBox x:Name="PasswordBox" HorizontalAlignment="Center" PasswordChar=" * " Margin="138,84,121.333,110.667" VerticalAlignment="Center" Grid.ColumnSpan="2" Width="134" Height="26" VerticalContentAlignment="Center" HorizontalContentAlignment="Center"/>

    </Grid>
</Window>

(2)Window1.xaml.cs,代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace Aock
{
    /// <summary>
    /// Window1.xaml 的交互逻辑
    /// </summary>
    public partial class Window1 : Window
    {

        private void Button3_Click(object sender, RoutedEventArgs e)
        {
            PasswordBox.Password.Trim();//清除密码文本框内容
            string password = PasswordBox.Password;

            if (PasswordBox.Password == "")
            {
                MessageBox.Show("Please enter a password!");
            }
            else
            {
                if ("1234".Equals(password))
                {
                    PasswordBox.Password = "";//每次判断密码是否正确完成后清空文本框
                    this.Close();
                }
                else
                {
                    PasswordBox.Password = "";
                    MessageBox.Show("error");
                }
            }

        }

        public Window1()
        {
            InitializeComponent();
            //变成无边窗体
            this.WindowState = WindowState.Normal;//假如已经是Maximized,就不能进入全屏,所以这里先调整状态
            this.WindowStyle = WindowStyle.None;
            this.ResizeMode = ResizeMode.NoResize;
            // 调整窗口最大化。
            this.WindowState = WindowState.Maximized;
        }

        //重写Close()方法
        protected override void OnClosing(CancelEventArgs e)
        {
            e.Cancel = true;  // cancels the window close    
            this.Hide();      // Programmatically hides the window
        }
    }
}

4.可以直接运行啦。

                                  作者:freesheep720
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值