テーマ、知りたいこと
C#のMAUIについて、日本語の情報を知りたい。
MAUIを使ってアプリケーションを作っている、チュートリアルのような情報が欲しい。
背景、状況
現在、4択のクイズゲームを作ろうと考えています。
そこで、言語はC#でUIをMAUIを使って、実現しようとしているのですが、
MAUIの情報(日本語)が少なくて、困っています。
UdemyやAmazonで検索したのですが、かなり前のWPFの情報は、日本語で提供されているのですが、
最新のMAUIの情報が、ほとんどなく、Microsoft の AIスキルセンターで、基礎中の基礎は
勉強しましたが、実際、どのようにMAUIを使って、アプリケーションを組んでいくのかの構想が
思いつきません。
そこで、MAUI を使って、何かのアプリケーションを作っているチュートリアル的なものは
どこかに存在しないでしょうか? もしくは、MAUI を我慢して情報の多い WPF を使って
いくのがいいのでしょうか?できたら最新のMAUI を使いたいと考えています。
困っているのは、4択クイズゲームのUI設計で、MAUI をどう使うといいか、についての点です。
MAUI の断片的な知識は手に入ったのですが、それをどう組み立てるのかがわかりません。
どう組み立てれば、4択クイズゲームのUIを作れるのかがわかりません。
サンプル、チュートリアルのようなものがあれば、助かります。
参考になるような知恵をお貸しください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
#1
総合スコア260
投稿2024/11/02 14:07
MAUI について検索していたら、参考になりそうなサイトを見つけました。
https://learn.microsoft.com/ja-jp/dotnet/maui/fundamentals/localization?view=net-maui-8.0
ここを勉強して、それでもわからなかったら質問します。
失礼しました。
#2
総合スコア9807
投稿2024/11/02 16:35
編集2024/11/02 16:36MAUI について検索していたら、参考になりそうなサイトを見つけました。
リンク先はローカライズの話ですが、4択クイズに役立つ内容ですか?
[受付終了]となっていますが、回答に取り掛かっていたので回答しておきます。
良かれと思って言ってるんでしょうけど、2時間程度で締め切られてもなぁって思いますね^^;
MAUIを使ってアプリケーションを作っている、チュートリアルのような情報が欲しい。
チュートリアルというとこの辺になるでしょうか(見てるでしょうが^^;
すべてのコース、ラーニング パス、モジュールを参照する - Training | Microsoft Learn
MAUIの情報(日本語)が少なくて、困っています。
「日本語」でとなるとかなり狭まってはきますよね。
Xamarinの頃は情報発信されている方も結構おられましたが、その頃に比べるとMAUIは少ない印象はあります(しらけてしまったのか・習得されて粛々と作っているのかはわかりませんが^^;
Xamarin.FormsとMAUIは大体同じなので、使える情報もあるとは思います(ただ微妙な差ではまりやすいとも言えます)
もしくは、MAUI を我慢して情報の多い WPF を使っていくのがいいのでしょうか?できたら最新のMAUI を使いたいと考えています。
XAML系のもので一番簡単で情報も多いのはWPFですが、スマホアプリを作りたいんですよね?
だったら(個人的には)WPFに途中下車する必要はない気がします。
同じXAML系とはいえ使えるコントロールにも相当違いがありますし、ライフサイクル等WPFにはない概念もあります。
かえって混乱したりフラストレーションがたまる可能性があります。
WindowsアプリでいいならMAUIを使う意味はありません。
困っているのは、4択クイズゲームのUI設計で、MAUI をどう使うといいか、についての点です。
「4択クイズ」人気ありますね。わたしも過去何回か回答しました。
processingのオブジェクトの考え方
【C#】ページ遷移時の処理について。分岐方式を改善したい。
Processingで四択クイズを作りたい。
データの持ち方とか遷移の仕方で困ってる方が多かったですがUIですか。
とりあえずなんかボタンでも置いたらいいんじゃないですかね?
いやそういう意味ではないのは分かっていますが、動く形になってから「もっとここをこうしたいんだよなぁ」ってところを個々に調べるというか...
サンプル、チュートリアルのようなものがあれば、助かります。
過去回答の使いまわしで雑に作ってみました(わたしも初めて作りました)
遷移もないですしWindows Forms的な作りで、MAUIのサンプルとしては全然ダメでしょうけど^^;
酷かろうが完成しないよりはいいと思うので、とにかく手を動かして経験値を上げるよりほかないと思います^^
xml:AppShell.xaml
1<?xml version="1.0" encoding="UTF-8" ?> 2<Shell 3 x:Class="Qq4dt5xzsk6ir41.AppShell" 4 xmlns="http://schemas.microsoft.com/dotnet/2021/maui" 5 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 6 xmlns:local="clr-namespace:Qq4dt5xzsk6ir41" 7 Shell.FlyoutBehavior="Disabled"> 8 <ShellContent 9 Title="おじさんゲーマークイズ" 10 ContentTemplate="{DataTemplate local:MainPage}" 11 Route="MainPage" /> 12</Shell>
xml:MainPage.xaml
1<?xml version="1.0" encoding="utf-8" ?> 2<ContentPage 3 x:Class="Qq4dt5xzsk6ir41.MainPage" 4 xmlns="http://schemas.microsoft.com/dotnet/2021/maui" 5 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"> 6 <ScrollView> 7 <VerticalStackLayout Padding="30,0" Spacing="25"> 8 <Label x:Name="QuestionLabel" Style="{StaticResource Headline}" /> 9 <Button x:Name="Ans1Button" Clicked="Ans_Clicked" /> 10 <Button x:Name="Ans2Button" Clicked="Ans_Clicked" /> 11 <Button x:Name="Ans3Button" Clicked="Ans_Clicked" /> 12 <Button x:Name="NextButton" Clicked="Next_Clicked" /> 13 </VerticalStackLayout> 14 </ScrollView> 15</ContentPage>
cs:MainPage.xaml.cs
1namespace Qq4dt5xzsk6ir41; 2 3public partial class MainPage : ContentPage 4{ 5 private readonly QuizData[] quizData = 6 [ 7 new("史上初の家庭用ゲーム機とされるものは?", "オデッセイ(マグナボックス)", "ホーム・ポン(アタリ)", "カラーテレビゲーム15(任天堂)"), 8 new("スーパーファミコンソフト「ドラゴンクエスト6 幻の大地」の定価(税抜)は?", "11,400円", "14,800円", "9,700円"), 9 new("PlayStationの同時発売ソフトは?", "リッジレーサー(ナムコ)", "モータートゥーン・グランプリ(SCE)", "チョロQ(タカラ)"), 10 ]; 11 12 private int index; 13 private int correct; 14 15 public MainPage() 16 { 17 InitializeComponent(); 18 Init(); 19 } 20 21 private void Init() 22 { 23 Random.Shared.Shuffle(quizData); 24 index = correct = 0; 25 26 QuestionLabel.Text = "ゲームに関する懐かしい3択クイズ"; 27 NextButton.Text = "始める"; 28 29 Ans1Button.IsVisible = false; 30 Ans2Button.IsVisible = false; 31 Ans3Button.IsVisible = false; 32 NextButton.IsVisible = true; 33 } 34 35 private void Next() 36 { 37 QuestionLabel.Text = quizData[index].Question; 38 NextButton.Text = "次へ"; 39 40 Ans1Button.Text = quizData[index].Choices[0]; 41 Ans2Button.Text = quizData[index].Choices[1]; 42 Ans3Button.Text = quizData[index].Choices[2]; 43 44 Ans1Button.IsVisible = true; 45 Ans2Button.IsVisible = true; 46 Ans3Button.IsVisible = true; 47 NextButton.IsVisible = false; 48 } 49 50 private void Result() 51 { 52 QuestionLabel.Text = $"{quizData.Length}問中{correct}問正解"; 53 NextButton.Text = "もういちど"; 54 55 Ans1Button.IsVisible = false; 56 Ans2Button.IsVisible = false; 57 Ans3Button.IsVisible = false; 58 NextButton.IsVisible = true; 59 } 60 61 private void Ans_Clicked(object sender, EventArgs e) 62 { 63 if (sender is Button button) 64 { 65 if (button.Text == quizData[index].Answer) 66 { 67 QuestionLabel.Text = "正解!"; 68 correct++; 69 } 70 else 71 { 72 QuestionLabel.Text = "はずれ"; 73 } 74 75 Ans1Button.IsVisible = false; 76 Ans2Button.IsVisible = false; 77 Ans3Button.IsVisible = false; 78 NextButton.IsVisible = true; 79 80 index++; 81 } 82 } 83 84 private void Next_Clicked(object sender, EventArgs e) 85 { 86 if (NextButton.Text == "もういちど") Init(); 87 else if (index < quizData.Length) Next(); 88 else Result(); 89 } 90} 91 92public class QuizData(string question, params string[] choices) 93{ 94 public string Question { get; } = question; 95 public string[] Choices => [.. choices.OrderBy(_ => Guid.NewGuid())]; 96 public string Answer { get; } = choices[0]; 97}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。