WPFにModernWpfUIを適用する

WPFはWinFormsの後継のユーザインタフェースサブシステムです。しかし、.NET Framework 3.0の時代からあるので、UIが古臭いです。

実際のUIの例

そこで、このUIたちをどうにかできないかとGoogleを散策しているととあるライブラリを見つけました。ModernWpfです。

Githubより引用

Windows10の見た目に合ったUIで個人的に気に入りました。しかし、Windows10の見た目というところで躓くことになるのですが…

あらすじ

プロジェクトに導入

NugetからModernWpfUIをインストール

NugetからModernWpfUIとModernWpfUI.MessageBoxをインストールしましょう。

ModernWpfUI
ModernWpfUI.Message

そのあと、App.xamlをこのように変更します。

<Application x:Class="ModernWpfTest.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:ModernWpfTest"
             xmlns:ui="http://schemas.modernwpf.com/2019"
             StartupUri="MainWindow.xaml">
    <!-- xmlns:ui="http://schemas.modernwpf.com/2019"を追加 -->
    <Application.Resources>
        <!-- ここから -->
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ui:ThemeResources />
                <ui:XamlControlsResources />
                <!-- Other merged dictionaries here -->
            </ResourceDictionary.MergedDictionaries>
            <!-- Other app resources here -->
        </ResourceDictionary>
        <!-- ここまでをApplication.Resourcesに追加 -->
    </Application.Resources>
</Application>

最後に、適用したいウィンドウをこのようにします。

<Window x:Class="ModernWpfTest.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:ModernWpfTest"
        mc:Ignorable="d"
        xmlns:ui="http://schemas.modernwpf.com/2019"
        ui:WindowHelper.UseModernWindowStyle="True"
        Title="MainWindow" Height="450" Width="800">
    <!-- xmlns:ui="http://schemas.modernwpf.com/2019"
         ui:WindowHelper.UseModernWindowStyle="True"を追加 -->

普通、ここで作業は終了なのですが、実行しようとしてみるとエラーが出ます。

ビルドエラーが出てしまった。

エラーを見てみると、WinRTの組み込み…などと書かれています。何が原因なのか当初は理解できませんでした。

エラーの解決方法

ここで、最初に言ったWindows10の見た目が出てきます。Windows10の見た目なら、Windows10より昔ののOSでしか動くはずがありません

解決方法は単純です。プロジェクトのプロパティからターゲットOSバージョンとサポートされているOSのバージョンを変更すればOKです。

もともとWindows7以降の設定になっていた。どうりで動作しないわけである。
Windows10以降の設定に変更した。

これでビルドしてみると、正常に動作します。

これで導入をあきらめていた人々の助けになれば幸いです。

最後までご覧いただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


あらすじ