WPF 极简风格登录界面

UI使用MaterialDesign,先看界面

一、界面

极简登录界面

二、下载MaterialDesign包

我使用的是VS2019,选择要引入MaterialDesign包的项目,鼠标右击选择NuGet程勋包

在浏览页签中输入MaterialDesign,下载MaterialDesignColors和MaterialDesignThemes两个包

  安装成功后,在已安装页签中能看到这两个UI包

  三、引用MaterialDesign

可以在GitHub下载源码,源码里有使用的Demo

GitHub地址:GitHub - MaterialDesignInXAML/MaterialDesignInXamlToolkit: Google's Material Design in XAML & WPF, for C# & VB.Net.

在App.xaml中引入要使用的包

<Application x:Class="Login_WPF.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:Login_WPF"
             StartupUri="MainWindow.xaml">
    <Application.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.Blue.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

四、登录界面代码

Xaml代码:

<Window x:Class="Login_WPF.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:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
        TextElement.Foreground="{DynamicResource MaterialDesignBody}"
        Background="{x:Null}"
        AllowsTransparency="True"
        WindowStyle="None"
        WindowStartupLocation="CenterScreen"
        xmlns:local="clr-namespace:Login_WPF"
        mc:Ignorable="d"
        Title="MainWindow" Height="760" Width="450">
    <materialDesign:Card UniformCornerRadius="15" Background="{DynamicResource MaterialDesignPaper}" Margin="25"
                          materialDesign:ShadowAssist.ShadowDepth="Depth4">
        <materialDesign:DialogHost CloseOnClickAway="True" x:Name="DialogHost">
            <StackPanel>
                <materialDesign:PopupBox HorizontalAlignment="Right" Margin="0 20 20 0"
                   PlacementMode="BottomAndAlignRightEdges"  StaysOpen="False" Height="25">
                    <StackPanel>
                    <StackPanel Margin="16 10 0 6" Orientation="Horizontal" HorizontalAlignment="Center">
                        <TextBlock  VerticalAlignment="Center" Text="Dark"/>
                        <ToggleButton Cursor="Hand" ToolTip="Enabled Dark Mode" Margin="12 0 8 0"
                                      x:Name="themeToggle" IsChecked="{Binding IsDarkTheme}"
                                      Click="themeToggle_Click"></ToggleButton>
                        </StackPanel>
                        <Button ToolTip="Having Trouble Logging In?" Margin="0 8 0 0" Content="Help"></Button>
                        <Button x:Name="btn_exit" ToolTip="Close Application" Content="Exit" Click="exitApp"/>
                    </StackPanel>                               
                </materialDesign:PopupBox>
                <Image Margin="0 60 0 5" Height="100" Source="wind.png"/>
                <TextBlock Margin="0 25 0 5" HorizontalAlignment="Center" FontSize="28" FontWeight="Bold" Text="Welcome Back"/>
                <TextBlock FontSize="17" FontWeight="SemiBold" HorizontalAlignment="Center" Text="Log in to your account"/>
                <TextBox Margin="0 50 0 0" x:Name="txtUserName" Width="300" FontSize="18"
                         materialDesign:HintAssist.Hint="Enter Username" BorderThickness="2" 
                         BorderBrush="{DynamicResource MaterialDesignDivider}"
                         Style="{StaticResource MaterialDesignOutlinedTextBox}"/>
                <PasswordBox Margin="0 20 0 0" x:Name="txtPassword" Width="300" FontSize="18"
                         materialDesign:HintAssist.Hint="Enter Password" BorderThickness="2" 
                         BorderBrush="{DynamicResource MaterialDesignDivider}"
                         Style="{StaticResource MaterialDesignOutlinedPasswordBox}"/>

                <Button Margin="0 20 0 0" x:Name="loginBtn" Width="300" Height="53" FontSize="18" 
                        materialDesign:ButtonAssist.CornerRadius="10" Content="LOG IN" materialDesign:ShadowAssist.ShadowDepth="Depth0"
                         Style="{StaticResource MaterialDesignFlatMidBgButton}"/>
                <Button Margin="0 20 0 0" x:Name="signupBtn" Width="300" Height="53" FontSize="18" 
                        materialDesign:ButtonAssist.CornerRadius="10" Content="Create Account" materialDesign:ShadowAssist.ShadowDepth="Depth0"
                         Style="{StaticResource MaterialDesignFlatButton}"/>

            </StackPanel>
            
            
        </materialDesign:DialogHost>
        
    </materialDesign:Card>
</Window>

.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;
using MaterialDesignThemes.Wpf;

namespace Login_WPF
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public bool IsDarkTheme { get; set; }
        private readonly PaletteHelper paletteHelper = new PaletteHelper();

        public MainWindow()
        {
            InitializeComponent();
            
        }

        private void themeToggle_Click(object sender, RoutedEventArgs e)
        {
            ITheme theme = paletteHelper.GetTheme();
            if (IsDarkTheme = theme.GetBaseTheme() == BaseTheme.Dark)
            {
                IsDarkTheme = false;
                theme.SetBaseTheme(Theme.Light);
            }
            else
            {

                IsDarkTheme = true;
                theme.SetBaseTheme(Theme.Dark);
            }
            paletteHelper.SetTheme(theme);
        }

        private void exitApp(object sender, RoutedEventArgs e)
        {
            Application.Current.Shutdown();
        }
        protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
        {
            base.OnMouseLeftButtonDown(e);
            DragMove();
        }
    }
}

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: WPF巨幕效果的界面是一种具有视觉冲击力的界面设计。它采用了强大的WPF技术,能够实现画面的无缝连接和多种动画效果,让用户感受到更为生动、真实的视觉冲击。 与传统的界面设计相比,WPF巨幕效果的界面更注重用户体验,不仅突出了内容和功能的展示,更能够营造出一种沉浸式的使用体验。在这种界面下,用户可以更快速地找到目标,感受到更高层次的用户互动,提高使用效率和满意度。 WPF巨幕效果的界面还具有很好的可控性。用户可以根据自己的需要进行界面设置和调整,达到最佳的使用效果。而且,该界面还具有良好的可扩展性和通用性,可以适用于多种应用场景,如商业展示、教育培训、游戏娱乐等等。 综上所述,WPF巨幕效果的界面是一种突出用户体验、具有视觉冲击的界面设计,适用于各类应用场景,可以提高用户满意度和使用效率,是一种值得推广和应用的界面设计方案。 ### 回答2: WPF巨幕效果的界面是指一种特殊的用户界面设计,以展示视觉效果为主要目的。该效果主要运用在电影、演唱会、体育赛事等场所的巨幕上,以引起观众的视觉冲击感和震撼效果。在WPF技术中,可以通过设置多个屏幕、多重矩阵变换、深度分层等方式,将多个窗口的内容拼接成一张大屏幕,并以特定的方式展示,如分割屏幕、环绕屏幕等。 WPF巨幕效果的界面设计需要考虑多个方面,如图像分辨率、屏幕的数量和尺寸、多媒体内容的格式和大小等。在设计过程中,需要对用户的观看距离和角度进行考虑,以确保图像质量和尺寸的合理和适宜。同时,需要考虑观众对内容的响应,如何创造出令人印象深刻和难忘的视觉效果等。 综上所述,WPF巨幕效果的界面设计需要综合考虑各种因素,以创造出令人印象深刻和震撼的视觉效果。该技术应用广泛,不仅可以用于电影、演唱会等大型活动场所,还可以用于企业展示、室内设计、VR/AR等其他领域。 ### 回答3: WPF 巨幕效果的界面是一种引人注目的用户界面设计,它可以让应用程序界面看起来像是被放大的电影画面。这种设计所用到的技术包括了对 WPF 中的 3D 功能的深度应用,以及对图像的高质量渲染和动画效果的精细控制。 通过使用 WPF 巨幕效果,应用程序可以更加生动、直观地呈现信息,提高用户的使用体验。这种界面设计方式适用于需要呈现大量数据、图像、视频等内容的应用程序,例如数字娱乐、科学计算、教育学习、虚拟现实等领域。 为了实现巨幕效果的界面,开发人员需要对 WPF 中的视觉组件、3D 图形渲染、图像处理、动画效果等技术有深入的了解,并且需要具备良好的设计和编程能力。同时,开发人员还需要关注应用程序的性能问题,确保界面的呈现不会占用过多的计算资源。 总的来说,WPF 巨幕效果的界面设计具有很大的创意空间和实用性,可以为应用程序带来更好的用户体验和商业价值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值