fc2ブログ

Material Design In XAML Toolkitを使うには

 WPFではControlTemplateをカスタマイズすることでコントロールの見た目を自由に変更できますが、ControlTemplateを自分で書くのはかなり大変です。
 ControlTemplateは書きたくないけどカッコいい見た目にしたいという方は他の人が作ったライブラリを使わせてもらいましょう。
 Material Design In XAML Toolkitを使うことでマテリアルデザインコントロールをXAMLで使用できるようになります。
 Material Design In XAML Toolkitのサイトにある「Clone or download」ボタンからデモアプリのコードをダウンロードできます。
 Material Design In XAML Toolkitを使うには、NuGetでMaterialDesignThemesを検索してインストールしてください。
MaterialDesign NuGet
 次にApp.xamlに4つのリソースディクショナリを追加します。
<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.DeepPurple.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>    
</Application.Resources>
 この4つのリソースディクショナリのうち2つ目に指定したMaterialDesignTheme.Defaults.xamlにボタンやチェックボックス等のコントロール定義が含まれています。
 その他の3つはコントロールの色を指定しています。
 一番上のリソースディクショナリはLightとDarkの2種類が用意されています。
 Darkを使用することで背景色が黒くなり、それに合わせて文字色等も変更されます。
 3つめと4つめのリソースディクショナリはコントロールの主要な色とアクセントとして使用する色を指定します。
 どんな色が使えるかはデモアプリのPaletteを参照してください。
 最後にWindowにいくつかのプロパティを設定して終了です。
<Window x:Class="MdDemo1.Views.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
        xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
        xmlns:l="http://schemas.livet-mvvm.net/2011/wpf"
        xmlns:v="clr-namespace:MdDemo1.Views"
        xmlns:vm="clr-namespace:MdDemo1.ViewModels"
        Title="MainWindow" Height="100" Width="280"

        xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
        TextElement.Foreground="{DynamicResource MaterialDesignBody}"
        TextElement.FontWeight="Regular"
        TextElement.FontSize="13"
        TextOptions.TextFormattingMode="Ideal"
        TextOptions.TextRenderingMode="Auto"
        Background="{DynamicResource MaterialDesignPaper}"
        FontFamily="{DynamicResource MaterialDesignFont}">
    
</Window>
 xmlns:materialDesignからFontFamilyまで(11~18行目)がMaterialDesignToolkitを使用するために追加したプロパティです。
 これでMaterialDesignToolkitを使用する準備が整いました。
 あとは普通にコントロールを配置していくだけです。
 試しに4種類のボタンを設置して実行してみた結果が以下の画像です。
MaterialDesign Light Demo
 MaterialDesignToolkitではApp.xamlで指定したリソースディクショナリを変更することで使用する色を変更できます。
 この画像ではLightテーマでPrimaryにDeepPurpleを、AccentにLimeを使用しています。
 試しにDarkテーマ、PrimaryにIndigoを、AccentにYellowを使用してみると以下の様になります。
MaterialDesign Dark Demo
 色の組み合わせはデモアプリのPalleteで試すことができます。

 とりあえずMaterialDesignToolkitを使用する際に最低限必要なことを説明しました。
 次回からは各種コントロールについて紹介していこうと思っています。  
スポンサーサイト



テーマ : プログラミング
ジャンル : コンピュータ

カレンダー
11 | 2016/12 | 01
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
全記事表示リンク

全ての記事を表示する

カテゴリ
タグリスト

月別アーカイブ
04  10  11  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09 
最新記事
リンク
最新コメント
検索フォーム
Amazon