面试 · 2024年7月24日

WPF UI控件库实现快速搭建现代化软件界面的尝试学习

最近在准备某项目的调研工作。看见了一个风格十分现代化的WPF控件库——WPF UI,看起来比较喜欢。加上项目适配到Dot Net4.7.2 一直到8.0,值得我闲暇时间尝试学习一下。

image-20240724154154068

官方演示Demo :WPF UI Gallery

可以微软商店免费下载使用。

image-20240724150413629
image-20240724150439989

适配开发版本

image-20240724150130154

控件特点

以我实现的demo为例子

1.支持黑白等内置主题

仅需要修改App.xaml 配置即可。而且支持软件运行的时候修改,这是传统方法无法做到的,不需要额外设置后重启。

image-20240724150930764
image-20240724150953958
<Application x:Class="WpfApp3.App"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
            StartupUri="MainWindowView.xaml">
   <Application.Resources>
       <ResourceDictionary>
           <ResourceDictionary.MergedDictionaries>
               <ui:ThemesDictionary Theme="Light" />
               <ui:ControlsDictionary />
           </ResourceDictionary.MergedDictionaries>
       </ResourceDictionary>
   </Application.Resources>
</Application>

2. 菜单多模式显示

 <ui:NavigationView Name="MainNavigationView" IsBackButtonVisible="Visible" PaneTitle="菜单" 
                   PaneDisplayMode="Left" Grid.Column="0" Margin="0,0,0,0">
    <!-- PaneDisplayMode 可以选择多种模式 Left, Bottom, Top, LeftMinimal ,LeftFluent-->
</ui:NavigationView>

(1)Top

image-20240724151804352

(2)Bottom

image-20240724151944524

(3)LeftFluent

image-20240724152039253

其他同理,不再赘述。此外还支持浏览路径返回。

3.内置Icon库

内置Win现代化通用Icon,满足大部分需求,减少了UI美工工作量。

image-20240724152756774
image-20240724152914382

4.控件兼容与自适应

可以和传统WPF的基本控件混用,而且自动转换风格 ,属性命名基本相同,无需在多余增加学习成本。

image-20240724153449426

5.风格统一

风格十分统一,符合Win系统的UI设计标准

image-20240724153754823

不可忽视的缺点

1.订制化存在难度

因为风格固定,导致如果客户需要的风格与它不一样,就需要专门修改。

2.内置修改较难

3.官方存在缺陷

在使用官方的demo的时候,在切换菜单显示类型,存在卡死闪退的问题。说明改项目还存在一些问题。