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

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

新規登録して質問してみよう
ただいま回答率
85.37%
C#

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

意見交換

2回答

312閲覧

[C#] [MAUI] MAUIの情報(日本語)が少なくて困っています。[受付終了]

yukkuri_55

総合スコア260

C#

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2024/11/02 11:51

編集2024/11/02 14:08

テーマ、知りたいこと

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

yukkuri_55

総合スコア260

投稿2024/11/02 14:07

MAUI について検索していたら、参考になりそうなサイトを見つけました。
https://learn.microsoft.com/ja-jp/dotnet/maui/fundamentals/localization?view=net-maui-8.0
ここを勉強して、それでもわからなかったら質問します。
失礼しました。

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

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

#2

TN8001

総合スコア9807

投稿2024/11/02 16:35

編集2024/11/02 16:36

#1

MAUI について検索していたら、参考になりそうなサイトを見つけました。

リンク先はローカライズの話ですが、4択クイズに役立つ内容ですか?

[受付終了]となっていますが、回答に取り掛かっていたので回答しておきます。
良かれと思って言ってるんでしょうけど、2時間程度で締め切られてもなぁって思いますね^^;


MAUIを使ってアプリケーションを作っている、チュートリアルのような情報が欲しい。

チュートリアルというとこの辺になるでしょうか(見てるでしょうが^^;
すべてのコース、ラーニング パス、モジュールを参照する - Training | Microsoft Learn

コード サンプルを参照 | 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

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

この意見交換はまだ受付中です。

会員登録して回答してみよう

アカウントをお持ちの方は

関連した質問