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

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

新規登録して質問してみよう
ただいま回答率
85.46%
.NET MAUI

.NET MAUIは、「.NET Multi-platform App UI」の略。単一コードで複数のプラットフォームに対応するクロスプラットフォームフレームワークです。Xamarin.Formsの進化系とされており、XAMLやMVVM に加え、MVUもサポートされています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

Q&A

解決済

1回答

2195閲覧

MAUI(.NET C#)での水平スクロールバーの表示ができない

SSK_Y

総合スコア12

.NET MAUI

.NET MAUIは、「.NET Multi-platform App UI」の略。単一コードで複数のプラットフォームに対応するクロスプラットフォームフレームワークです。Xamarin.Formsの進化系とされており、XAMLやMVVM に加え、MVUもサポートされています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

0グッド

0クリップ

投稿2023/04/06 14:20

MAUI(.NET C#)での水平スクロールバーの表示

MAUIでAndroid/iOS向けアプリを開発中です。
画面より広いGridを表示し、水平・垂直スクロールバーが表示される、
つまり指でドラッグすることで上下左右にGridエリアを移動させるUIとしたいです(下記例ではGridは複雑になるためImageで代用しています)。
垂直スクロールバーは表示されますが、水平スクロールバーが表示されません。

該当のソースコード

<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MauiApp2.NewPage1" Title="NewPage1"> <Grid RowDefinitions="100,*,100"> <ScrollView Grid.Row="1" VerticalScrollBarVisibility="Always" HorizontalScrollBarVisibility="Always"> <Image Source="dotnet_bot.png" HeightRequest="2000" WidthRequest="2000"/> </ScrollView> </Grid> </ContentPage>

試したこと

  • HorizontalScrollBarVisibilityが該当の機能のため、Alwaysを指定していますがバーは表示されません。Default, Neverでも変わりません。
  • VerticalScrollBarVisibilityも指定してみましたが、Always、Defaultでスクロールバーが表示されNeverでは表示されないので想定通りです。
  • ScrollViewではなくScrollViewerというものも存在しますが、MAUIではサポートしていないようです。
  • 上記例のImage部分をGridにしても水平スクロールバーは表示されませんでした。

よろしくお願い致します。

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

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

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

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

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

SSK_Y

2023/04/06 17:14

ありがとうございます。Orientationに水平垂直両方を可とするBothを指定しても同じく垂直スクロールバーしか表示されませんでした。 <ScrollView Grid.Row="1" VerticalScrollBarVisibility="Always" HorizontalScrollBarVisibility="Always" Orientation="Both">
SSK_Y

2023/04/07 14:45 編集

ありがとうございます。 同じような内容でこんな記事もありました。 https://atmarkit.itmedia.co.jp/ait/articles/1612/28/news021.html ScrollViewの中に入れているImageはNestedScrollingEnabled は存在しませんでした。ScrollView自身にも存在せず、Xamarinとの違いなのかと思っています。 試行錯誤し、Winodws上での起動では下記で水平・垂直スクロールバーが表示されました。 ``` <ContentPage 略> <Grid RowDefinitions="100,*,100"> <ScrollView Grid.Row="1" VerticalScrollBarVisibility="Always" HorizontalScrollBarVisibility="Always" Orientation="Both"> <Grid HeightRequest="3000" WidthRequest="3000" RowDefinitions="*,*,*" ColumnDefinitions="*,*,*"> <Image Source="pink.png" Grid.Row="0" Grid.Column="0"/> <Image Source="green.png" Grid.Row="0" Grid.Column="2"/> <Image Source="pink.png" Grid.Row="1" Grid.Column="1"/> <Image Source="green.png" Grid.Row="2" Grid.Column="0"/> <Image Source="green.png" Grid.Row="2" Grid.Column="2"/> </Grid> </ScrollView> </Grid> </ContentPage> ``` しかし、同じソースでAndroid上で実行すると、水平スクロールバーのみ表示され、垂直スクロールはできない状態です。 OrientationをBoth以外にも試しましたが、垂直か水平どちらかしかスクロールバーはでませんでした。 現状のMAUIにおけるAndroid仕様なのかもしれません・・
Zuishin

2023/04/07 14:50

リンクした Stack Overflow の回答では、Android のバグかもしれないので Issue にある解決法を試せと書いてあります。 そして StackLayout で解決しています。
SSK_Y

2023/04/10 17:23

StackLayout で縦横スクロールが可能となりました。 スクロールするエリアで先頭行・先頭列の固定など実現したいことがいろいろあり、StackLayoutで実現できるかわからないですが、スクロールの実績ができましたのでこれをベースに試行錯誤したいと思います。 本件解決しました。ありがとうございます。
Zuishin

2023/04/10 22:13

自己解決してください。
guest

回答1

0

自己解決

質問欄にて解決のための情報をご提示いただきました。
コメントが終了しましたのでCloseとさせていただきます。ありがとうございました。

投稿2023/06/16 20:10

SSK_Y

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問