讓 WPF 也可以有 Material Design 樣式

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

内容简介:有時候我們還是要寫一些 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

參考資料:


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

查看所有标签

猜你喜欢:

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

敏捷软件开发

敏捷软件开发

马丁 / 邓辉、孙鸣 / 人民邮电出版社 / 2008-01-01 / 69.00元

《敏捷软件开发:原则模式和实践(C#版)》不仅是一部深入浅出、生动易懂的面向对象原则与设计模式著作。而且还是一部通俗的敏捷方法导引书和快速实用的LJML教程。通过《敏捷软件开发:原则模式和实践(C#版)》你会发现,许多以前看起来非常枯燥费解的概念,忽然间都豁然开朗。变得鲜活生动起来。 C#版与此前的Java版相比,主要的更新包括加强了UML的介绍章节。使其更加贴近实战;增加了对MVP模式的介......一起来看看 《敏捷软件开发》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码