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

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

新規登録して質問してみよう
ただいま回答率
85.48%
UWP

UWPは、Universal Windows Platformの略。様々なデバイス向けに提供されているアプリケーションを共通のフレームワーク上で動作可能にする仕組みで、Windows10で導入されました。

C#

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

XAML

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

Q&A

解決済

1回答

2665閲覧

【UWP】画像とテキストを横に並べてキレイに表示させたい

heroherohero

総合スコア38

UWP

UWPは、Universal Windows Platformの略。様々なデバイス向けに提供されているアプリケーションを共通のフレームワーク上で動作可能にする仕組みで、Windows10で導入されました。

C#

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

XAML

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

0グッド

0クリップ

投稿2019/08/05 23:20

編集2019/08/06 06:42

お世話になっております。
現在、UWP(Prism version6.3)で、アプリの開発を行っております。

やりたいこと

画像とテキストを横に並べてキレイに表示させたいです。
もう少しお伝えさせていただくと、画像のサイズが異なるものがあるので、横幅に応じて、テキストの位置を横にずらしたいと考えております。
(この方針が正しいのか、怪しいところではありますが。。。)

試したこと

下記、コードを試しましたが、画像の大きさに応じて、画像とテキストの間の空白が、変わってしまい、意図したものになりませんでした。

c#

1<StackPanel BorderBrush="Black" BorderThickness="1" Margin="10" > 2 <TextBlock Text="{x:Bind ViewModel._ImageList[0].TakenTime}" FontSize="17" Margin="15"/> 3 <TextBlock Text="{x:Bind ViewModel._ImageList[0].ReflectionTitle}" FontSize="17" Margin="15,0"/> 4 <StackPanel Margin="0,12" Orientation="Horizontal"> 5 <TextBlock Text="{x:Bind ViewModel._ImageList[0].Description}" FontSize="17" TextWrapping="Wrap" Margin="320,0,-600,0" Width="220"/> 6 <Image Source="{x:Bind ViewModel._ImageList[0].FilePath}" Height="204" VerticalAlignment="Center" Margin="15,0,-246,0" MaxWidth="400" /> 7 </StackPanel> 8 </StackPanel>

ご回答いただけますと、幸いです。
よろしくお願い申し上げます。

【追記】
イメージ説明

実際のアプリ画面ではありませんが、このような形で表示をすることを想定しています。
一行テキストが一つのブロックに2つ、その左下に、画像、右下に少し大きめのテキストブロックを配置したいと考えております。
それを合計4つ並べて画面上に表示させる想定です。
ご確認のほど、よろしくお願いいたします。

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

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

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

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

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

tor4kichi

2019/08/06 00:14

1. アプリ画面のスクリーンショットを質問に追記して貰うことはできますか? 2. 横にずらしたいとしているTextBlockって3つのうちどれでしょう?全部?
heroherohero

2019/08/06 01:42 編集

コメント、ありがとうございます。 1. ⇒申し訳ございません。今手元に開発PCがないため、後ほど、添付いたします。 2. ⇒テキストボックスは、 「<StackPanel Margin="0,12" Orientation="Horizontal">」 の中にある、<Image>タグと並列に並んでいる、ものを横にずらしたいと考えております。 よろしくお願いいたします。
guest

回答1

0

ベストアンサー

アイテム間の余白のみを調節するにはStackPanelのSpacingプロパティを利用すると綺麗にレイアウトできるかと思います。

StackPanel.Spacing
https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.stackpanel.spacing

ただし、利用可能条件がWindows 10 Fall Creators Update (introduced v10.0.16299.0) であるため16299未満のバージョンを最小バージョンに含める場合は条件付きXamlで書き分ける必要があります。

Margin/Padding/Spacingの関係は次のリンクが詳しいです
https://www.reflectionit.nl/blog/2017/new-spacing-property-in-stackpanel

<StackPanel BorderBrush="Black" BorderThickness="1" Margin="10" > <TextBlock Text="{x:Bind ViewModel._ImageList[0].TakenTime}" FontSize="17" Margin="15"/> <TextBlock Text="{x:Bind ViewModel._ImageList[0].ReflectionTitle}" FontSize="17" Margin="15,0"/> <StackPanel Margin="0,12" Orientation="Horizontal" Spacing="16" > <TextBlock Text="{x:Bind ViewModel._ImageList[0].Description}" FontSize="17" TextWrapping="Wrap" Width="220"/> <Image Source="{x:Bind ViewModel._ImageList[0].FilePath}" Height="204" VerticalAlignment="Center" MaxWidth="400" /> </StackPanel> </StackPanel>

Xamlを修正してみました。横並びStackPanelに対してSpacing="16"を指定してアイテム間の余白を作っています。

(あとMargin="320,0,-600,0"としている部分は相対レイアウトのパネルに絶対レイアウトのやり方を持ち込んでいて、レイアウト管理を難しくしていると思うので避けたほうがいいかと思います。)

投稿2019/08/06 10:54

tor4kichi

総合スコア763

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

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

heroherohero

2019/08/12 08:40

遅くなりましたが、コメント、ありがとうございました。 いただいたアドバイスをもとに、試させいただきましたが、期待通りに良い感じに画面を描画することができました。 また何かありましたら、よろしくお願いいたします。
tor4kichi

2019/08/12 09:48

お役に立てたようでよかったです???? (言い忘れてたことですが、質問修正をすぐに対応して頂けて回答の助けになりました。早々の対応ありがとうございました。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問