質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Material Design

Material Designとは、Google社によって提唱されたデザインシステムです。デジタルにおける体験を構築するための見た目や振る舞いに関するガイドラインが含まれます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

1回答

988閲覧

WPFでMaterial Design in XAMLを導入したい

ume

総合スコア3

Material Design

Material Designとは、Google社によって提唱されたデザインシステムです。デジタルにおける体験を構築するための見た目や振る舞いに関するガイドラインが含まれます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

1グッド

0クリップ

投稿2024/03/07 15:49

実現したいこと

エラーをなくし、Material Design in XAMLの環境構築を終了させたい。

発生している問題・分からないこと

Visual Studio 2022 のC#での開発において、WPFを用いたMaterial Design in XAMLを導入したいと考えています。NuGetパッケージのMaterialDesignThemesとMaterialDesignColors(いずれも最新バージョン)をダウンロードし、App.xaml内の要素も規定に従って書いたのですが、デバッグ実行時に「ハンドルされていない例外」が生じて実行できませんでした。このエラーをなくし、Material Design in XAMLを無事に導入したいです。

エラーメッセージ

error

1System.Windows.Markup.XamlParseException: ''プロパティ 'System.Windows.ResourceDictionary.Source' の Set で例外がスローされました。' 行番号 '12'、行位置 '18'。' 2 3内部例外 4IOException: リソース 'themes/materialdesigntheme.defaults.xaml' を検索できません。

該当のソースコード

<Application x:Class="WpfApp2.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApp2" StartupUri="MainWindow.xaml" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" > <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.Indigo.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> </Application>

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

Material Design in XAMLの導入法を複数見比べ、変更しているところ以外はそのままにして実行しましたが、うまく動作しませんでした。

補足

以下のサイトを参考にしながら進めました。
WPFの無料UIライブラリ3選!概要・使用方法
Getting Started · MaterialDesignInXAML/MaterialDesignInXamlToolkit Wiki

TN8001👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

NuGetパッケージのMaterialDesignThemesとMaterialDesignColors(いずれも最新バージョン)をダウンロード

あとから閲覧する方のことも考えて、バージョンを明示してください。
現時点では↓でしょうか(MaterialDesignColorsは入れなくても依存関係で勝手に入るはず)
NuGet Gallery | MaterialDesignThemes 5.0.0
NuGet Gallery | MaterialDesignColors 3.0.0

デバッグ実行時に「ハンドルされていない例外」が生じて実行できませんでした。このエラーをなくし、Material Design in XAMLを無事に導入したいです。

5.0.0は4日前に出たばかりで、ドキュメントの修正が追い付いていないようです。
5.0.0 Migration Guide - WIP · MaterialDesignInXAML/MaterialDesignInXamlToolkit · Discussion #3466

MaterialDesignTheme.Defaults.xamlMaterialDesign2.Defaults.xamlMaterialDesign3.Defaults.xamlに変えろ」と言っています。
今までにより近いのはMaterialDesign2のようです。

xml:App.xaml

1<Application 2 x:Class="Qqsvrmn37rjccz5.App" 3 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 4 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 5 xmlns:local="clr-namespace:Qqsvrmn37rjccz5" 6 xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" 7 StartupUri="MainWindow.xaml"> 8 <Application.Resources> 9 <ResourceDictionary> 10 <ResourceDictionary.MergedDictionaries> 11 <materialDesign:CustomColorTheme 12 BaseTheme="Light" 13 PrimaryColor="Indigo" 14 SecondaryColor="Lime" /> 15 <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesign2.Defaults.xaml" /> 16 </ResourceDictionary.MergedDictionaries> 17 </ResourceDictionary> 18 </Application.Resources> 19</Application>

ここで言っている2とか3は、Googleのデザインシステムの話です。
Material Design 3 Roadmap · Issue #2475 · MaterialDesignInXAML/MaterialDesignInXamlToolkit

Material 3 vs Material 2 !? UIコンポーネント比較まとめ−1 #Android - Qiita


4.9.0に落とせば、Getting Started通りの書き方でいけます。

xml:App.xaml

1<Application 2 x:Class="Qqsvrmn37rjccz5.App" 3 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 4 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 5 xmlns:local="clr-namespace:Qqsvrmn37rjccz5" 6 xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" 7 StartupUri="MainWindow.xaml"> 8 <Application.Resources> 9 <ResourceDictionary> 10 <ResourceDictionary.MergedDictionaries> 11 <materialDesign:CustomColorTheme 12 BaseTheme="Light" 13 PrimaryColor="Indigo" 14 SecondaryColor="Lime" /> 15 <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" /> 16 </ResourceDictionary.MergedDictionaries> 17 </ResourceDictionary> 18 </Application.Resources> 19</Application>

提示の書き方は(4.9.0なら通るようですが)2.6.0以前の古い書き方です。

投稿2024/03/07 23:39

編集2024/03/07 23:43
TN8001

総合スコア9350

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ume

2024/03/08 02:05

回答ありがとうございます。 TN8001様のおっしゃるように、MaterialDesignThemesとMaterialDesignColorsのバージョンがそれぞれ5.0, 3.0でした。 バージョンはそのままに、App.xaml内を変更し、MaterialDesign2の記述を追加したところ、無事テーマが適用され、エラーなく動作しました。お助けしていただきありがとうございます。 ベストアンサーに選ばせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問