.NET MAUI x Prism.Maui x ReactivePropertyを使って、家計簿アプリを作っています。 その時に遭遇したエラーの解決に手を焼いたので、記しておこうと思います。
ゴール
※データはダミーです。
テキストの色と背景色に注目してください。WinUIでは黒背景に白テキストとなっており、Androidでは白背景に黒テキストとなっています。(なぜ背景色が違うかは多分PCでダークテーマを使用しているから?)テキストの色はOnPlatformで柔軟に設定することができます。こんな風に↓
<Setter Property="TextColor" Value="{OnPlatform iOS=Black, Android=Black, MacCatalyst=White, Tizen=White, WinUI=White}" /> <Setter Property="FontSize" Value="{OnPlatform iOS=15, Android=15, MacCatalyst=30, Tizen=30, WinUI=30}" />
エラーの詳細
で、どのようなエラーが起きたかというと、↓のようにコードを書いていたら
<Setter Property="TextColor" Value="{OnPlatform iOS=Black, Android=Black, WinUI=White}" /> <Setter Property="FontSize" Value="{OnPlatform iOS=15, Android=15, WinUI=30}" />
次のようにエラーが出ました。
1>Views\BalanceOfPaymentsPage.xaml(45,30): XamlC error : Position 45:30. Missing Value for Setter
当初は、これの意味がよくわからなかったのですが、原因は赤字箇所が不足していたようです。
<Setter Property="TextColor" Value="{OnPlatform iOS=Black, Android=Black, MacCatalyst=White, Tizen=White, WinUI=White}" />
<Setter Property="FontSize" Value="{OnPlatform iOS=15, Android=15, MacCatalyst=30, Tizen=30, WinUI=30}" />
どうやら発行対象のプラットフォームすべてについて、OnPlatformにて値を指定しなければならないようです。
.NET MAUIを使っている開発者の皆様、ご注意ください。