讓 WPF 也可以有 Material Design 樣式

栏目: 编程工具 · 发布时间: 7年前

内容简介:有時候我們還是要寫一些 WinForm 的程式,但是總覺得 WinForm 預設的樣式不夠現代化,如果能像 Web 一樣有 Material Design 的控制項,讓開發者能夠輕鬆做出友善的 UI 介面該有多好,Material Design 是一種視覺語言,可以有很多實作,例如使用 MaterialDesignInXamlToolkit 的前置作業很簡單,建立好 WPF 專案後,只需要三個步驟,即可快速設定好專案。

有時候我們還是要寫一些 WinForm 的程式,但是總覺得 WinForm 預設的樣式不夠現代化,如果能像 Web 一樣有 Material Design 的控制項,讓開發者能夠輕鬆做出友善的 UI 介面該有多好, MaterialDesignInXamlToolkit 這個專案就是讓你開開心心建置優良 UX 的好套件,而且還支援 UWP 和 WPF 兩種框架唷。

Material Design 是一種視覺語言,可以有很多實作,例如 Angular MaterialMaterialize ,這篇講的 MaterialDesignInXamlToolkit 也是一種實作。

快速使用

使用 MaterialDesignInXamlToolkit 的前置作業很簡單,建立好 WPF 專案後,只需要三個步驟,即可快速設定好專案。

步驟 1:使用 NuGet 安裝 MaterialDesignThemes 套件。

讓 WPF 也可以有 Material Design 樣式

這裡你可以 NuGet CLI Install-Package MaterialDesignThemes 進行安裝,或是透過 Visual Studio 的 NuGet Package Manager 搜尋並安裝。

步驟 2:修改 App.xaml

讓 WPF 也可以有 Material Design 樣式

Application.Resources 中加入 ResourceDictionary.MergedDictionaries 資源目錄,載入預先建置好的 Material Design 的基本樣式

<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.DeepPurple.xaml" />
        <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" />
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

上面的 MaterialDesignTheme.Light.xaml 提供 Light 樣式,我們可以改成 MaterialDesignTheme.Dark.xaml 來套用 Dark 樣式。

甚至可以修改上面 PrimaryAccent ,分別代表主要和次要的顏色樣式,裡如上面主要顏色使用 DeepPurple,次要顏色使用 Lime。

預先建置的顏色樣式,可以到 此套件原始碼的這個資料夾中 找到可以套用的顏色檔名。

步驟 3:修改 MainWindow.xaml

讓 WPF 也可以有 Material Design 樣式

Window 元素中加入 xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" 命名空間,讓你可以開始使用設計好的 Material Design 控制項

這裡除了加入需要的命名空間外,還放了一個 Material Design 卡片的控制項在畫面中。

<Window x:Class="DemoMaterialDesignWpfApp.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:DemoMaterialDesignWpfApp"
        xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <!-- Material Design Card Component - START -->
        <materialDesign:Card Padding="32" Margin="16">
            <TextBlock Style="{DynamicResource MaterialDesignTitleTextBlock}">My First Material Design App</TextBlock>
        </materialDesign:Card>
        <!-- Material Design Card Component - END -->
    </Grid>
</Window>

讓 WPF 也可以有 Material Design 樣式

如此一來就完成了基本設定了,可以按 F5 執行視窗應用程式。

瀏覽可用的控制項

讓 WPF 也可以有 Material Design 樣式

要瀏覽這個套件所提供的所有控制項,除了在此套件的 Github 專案 ButchersBoy/MaterialDesignInXamlToolkit 上看圖片介紹外,你也可以下載原始碼,裡面的 MainDemo.UwpMainDemo.Wpf 這兩個專案資料夾,就是所有控制項的範例程式,在本機建置一下就可以玩玩看,還可以學一下該控制項的使用方法。

本篇完整範例程式碼請參考 poychang/Demo-Material-Design-WPF-App

參考資料:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Microsoft.NET框架程序设计

Microsoft.NET框架程序设计

Jeffrey Richter / 李建忠 / 清华大学出版社 / 2003-11 / 68.00元

《Microsoft.NET框架程序设计》(修订版)是《微软.NET程序员系列》丛书之一,主要介绍如何开发面向Microsoft.NET框架的各种应用程序。Microsoft.NET框架是微软公司推出的新平台,包含通用语言运行时(CLR)和.NET框架类库(FCL)。《Microsoft.NET框架程序设计》(修订版)将深入解释CLR的工作机制及其提供的各种构造,同时还将讨论FCL中一些重要的类型......一起来看看 《Microsoft.NET框架程序设计》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具