WPF 使用MaterialDesign做一个漂亮的登录页面

导言

了解了Material Design之后,好用和效果真的很棒,就做了一个登录页面作为练习。废话不多说,直接开整...

 

Have a look

其动画更加丰富的...

 

环境搭建

直接参考https://mp.csdn.net/postedit/99816982里面的“使用部分”

 

XAML源代码

<Window.Resources>
        <SolidColorBrush x:Key="InputBoxHintAssistForegorundBrush" Color="Purple">

        </SolidColorBrush>

        <Style x:Key="InputIcon" TargetType="materialDesign:PackIcon">
            <Setter Property="Height" Value="30"/>
            <Setter Property="Width" Value="30"/>
            <Setter Property="HorizontalAlignment" Value="Center"/>
            <Setter Property="VerticalAlignment" Value="Center"/>
        </Style>

        <LinearGradientBrush x:Key="SkyBrush" StartPoint="0 0" EndPoint="0 1">
            <GradientStop Color="#2196F3" Offset="0"/>
            <GradientStop Color="#2196F3" Offset=".6"/>
            <GradientStop Color="#00E676" Offset=".6"/>
            <GradientStop Color="#00E676" Offset="1"/>
        </LinearGradientBrush>

        <LinearGradientBrush x:Key="GroundBrush" StartPoint="0 0" EndPoint="0 1">
            <GradientStop Color="#552196F3" Offset="0"/>
            <GradientStop Color="#FFFFFF" Offset=".3"/>
            <GradientStop Color="#00E676" Offset="1"/>
        </LinearGradientBrush>


    </Window.Resources>


    <Grid Background="{StaticResource SkyBrush}">
        <Grid Height="500" Background="{StaticResource GroundBrush}">
            <Grid.RowDefinitions>
                <RowDefinition Height="2.45*"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>

            <materialDesign:Card Grid.Row="0" Grid.RowSpan="2" 
                                HorizontalAlignment="Center"
                                VerticalAlignment="Center"
                                 Width="360"
                                 Height="266"
                                Padding="10"  >

                <StackPanel Margin="0 30 0 0">

                    <Grid Margin="0 10">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="30"/>
                            <ColumnDefinition Width="30"/>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="30"/>
                        </Grid.ColumnDefinitions>

                        <materialDesign:PackIcon Grid.Column="1"  Kind="UserBox" Style="{StaticResource InputIcon}"/>
                        <TextBox Grid.Column="2" Padding="10 0"
                              MaxLength="11"
                              materialDesign:HintAssist.Hint="用户"
                              materialDesign:HintAssist.Foreground="{StaticResource InputBoxHintAssistForegorundBrush}"
                              materialDesign:TextFieldAssist.UnderlineBrush="{StaticResource InputBoxHintAssistForegorundBrush}"
                             materialDesign:HintAssist.FloatingScale="0.6"
                              Text=""
                              Style="{StaticResource MaterialDesignFloatingHintTextBox}"
                              FontSize="20" />
                    </Grid>

                    <Grid Margin="0 10">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="30"/>
                            <ColumnDefinition Width="30"/>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="30"/>
                        </Grid.ColumnDefinitions>

                        <materialDesign:PackIcon Grid.Column="1" Kind="ShieldKey" Style="{StaticResource InputIcon}"/>

                        <PasswordBox Grid.Column="2" Padding="10 0"
                                  x:Name="FloatingPasswordBox"
                                 MaxLength="11"
                                  materialDesign:HintAssist.Hint="密码"
                                  materialDesign:HintAssist.Foreground="{StaticResource InputBoxHintAssistForegorundBrush}"
                                  materialDesign:TextFieldAssist.UnderlineBrush="{StaticResource InputBoxHintAssistForegorundBrush}"
                                  materialDesign:HintAssist.FloatingScale="0.6"
                                  Style="{StaticResource MaterialDesignFloatingHintPasswordBox}" 
                                  FontSize="20" />
                    </Grid>

                    <WrapPanel HorizontalAlignment="Right" Margin="0 10 30 30">
                        <CheckBox Content="记住密码"
                                  Margin="16 4 16 0"
                                  Style="{StaticResource MaterialDesignUserForegroundCheckBox}">
                        </CheckBox>
                        <CheckBox Content="自动登录"
                                  Margin="16 4 0 0"
                                  Style="{StaticResource MaterialDesignUserForegroundCheckBox}">
                        </CheckBox>

                    </WrapPanel>

                </StackPanel>
            </materialDesign:Card>


            <Grid Grid.Row="1" Height="50" VerticalAlignment="Top" Width="120" >
                <Button IsDefault="True"
                    FontSize="20"
                    Style="{StaticResource MaterialDesignRaisedDarkButton}"
                    Height="50" Click="Login_Clicked"
                    materialDesign:ButtonAssist.CornerRadius="25">
                    <TextBlock
                        Text="登录" />
                </Button>
            </Grid>

        </Grid>
    </Grid>

喜欢的朋友,直接贴上去就可以看到效果了。很简单,源代码就不贴了。以后去整个GitHub账号分享自己的代码。

 

Over

每次记录一小步...点点滴滴人生路...

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: WPF提供了许多强大的工具和功能来帮助您创建出视觉吸引的界面,包括视觉样式、布局、动画和数据绑定等。要创建一个漂亮的界面,可以使用WPF提供的预定义样式、布局控件以及各种动画效果,还可以创建自定义控件,以获得更多自定义的功能。 ### 回答2: 要设计一个漂亮的界面,首先需要考虑以下方面: 1. 视觉设计:选择合适的颜色搭配和字体,确保整体界面给人舒适的感觉。使用渐变、阴影、圆角等效果可以增加整体美感。 2. 布局设计:合理规划界面元素的位置和大小,避免拥挤或太过空旷的感觉。使用栅格和容器控件来进行布局,确保元素的对齐和间距一致。 3. 图标和图片:使用符合主题的图标和精美的图片,可以增加界面的吸引力和个性化。 4. 动画效果:WPF提供了丰富的动画功能,可以为界面元素添加过渡动画、平滑运动等效果,增加交互的生动性和吸引力。 5. 数据可视化:利用WPF的数据绑定和绘图功能,将数据以图表、图形等形式呈现,可以使界面更加直观、美观。 6. 响应式设计:考虑不同分辨率和设备的适应性,根据窗口大小自动调整布局和元素的显示方式。 7. 用户体验:关注用户的交互体验,包括响应速度、简洁明了的操作界面、良好的反馈等,使用户感到舒适、便捷和愉悦。 最重要的是,根据实际需求和目标群体,设计一个符合用户需求和喜好的界面,不断优化和改进设计,才能实现一个真正漂亮WPF界面。 ### 回答3: 要一个漂亮WPF界面,首先需要考虑设计方面,以下是一些重要的要点: 1. 使用合适的颜色方案:选择适合主题和品牌的颜色方案。可以使用配色工具来帮助选择合适的颜色组合,确保界面整体看起来协调统一。 2. 使用吸引人的字体:选择合适的字体来增加界面的吸引力。可以考虑使用一种容易阅读但又有个性的字体,或者通过调整字体的大小和粗细来突出重要的信息。 3. 注重布局:使用合适的布局方式来组织界面元素。可以使用网格、堆栈面板等布局容器来确保界面的整齐和美观。 4. 添加过渡和动画效果:使用适当的过渡效果和动画来提升用户体验。例如,在界面切换或元素操作时添加淡入淡出效果或缩放效果,可以使界面更加流畅和生动。 5. 图片和图标的选择:选择高质量且与主题相符的图片和图标来增加界面的美观度。可以使用专业的图库来获取适合的图片和图标资源。 6. 界面响应速度:尽量减少界面的加载时间和响应时间,确保用户能够快速地与界面进行交互。优化代码和使用异步方式加载数据等方法可以提高界面的性能和响应速度。 7. 界面风格统一:保持界面风格的一致性,确保所有界面元素的样式、颜色和字体都保持统一。这样可以使界面看起来更加整洁和专业。 总之,要一个漂亮WPF界面,需要注意设计方面的细节和统一性,并且考虑用户体验和界面性能方面的优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值