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

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

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

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

C#

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

Visual Studio

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

XAML

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

レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

Q&A

解決済

1回答

2583閲覧

UWP ListViewのカラムをレスポンシブ対応にしたい

Nishisaka

総合スコア8

UWP

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

C#

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

Visual Studio

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

XAML

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

レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

0グッド

0クリップ

投稿2020/03/04 02:42

前提・実現したいこと

UWPのListViewのColumn="4"をレスポンシブ対応にしたい。
画面の伸縮に合わせて、列ごと伸縮させたい。

発生している問題・エラーメッセージ

現状、GridのColumnDefinitionで"Auto"や"*"を設定すると、各レコードで列の幅がバラバラになってガタガタなリストビューになってしまいます。

該当のソースコード

C#

1<ListView Grid.Row="1" x:Name="lstView" IsItemClickEnabled="True" ItemsSource="{x:Bind JyusyorokuList}"> 2 <!--メイン--> 3 <ListView.ItemTemplate> 4 <DataTemplate x:DataType="data:Jyusyoroku" > 5 <Grid> 6 <Grid.ColumnDefinitions> 7 <ColumnDefinition Width="50"/> 8 <ColumnDefinition Width="130"/> 9 <ColumnDefinition Width="70"/> 10 <ColumnDefinition Width="100"/> 11 <ColumnDefinition Width="320"/> 12 <Grid.ColumnDefinitions> 13 14 <TextBlock x:Name="txbNo" Grid.Column="0" Text="{Binding No}" /> 15 <TextBlock x:Name="txbName" Grid.Column="1" Text="{Binding Name}" /> 16 <TextBlock x:Name="txbGender" Grid.Column="2" Text="{Binding Gender}" /> 17 <TextBlock x:Name="txbAddNo" Grid.Column="3" Text="{Binding AddNo}" /> 18 <TextBlock x:Name="txbAddress" Grid.Column="4" Text="{Binding Address}" /> 19 </Grid> 20 </DataTemplate> 21 </ListView.ItemTemplate> 22</ListView>

### 補足事項

ちなみに、ヘッダー部分はListViewの外に出しています。
(ListViewに縦スクロール機能を追加するとヘッダーも流れてしまうため)

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

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

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

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

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

guest

回答1

0

ベストアンサー

Width="*"で済むのなら、ListViewItemの幅を広げれば揃います。

xml

1<ListView ItemsSource="{x:Bind JyusyorokuList}"> 2 <ListView.ItemContainerStyle> 3 <Style TargetType="ListViewItem"> 4 <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 5 </Style> 6 </ListView.ItemContainerStyle> 7 <ListView.ItemTemplate> 8 <DataTemplate x:DataType="local:Jyusyoroku"> 9 <Grid> 10 <Grid.ColumnDefinitions> 11 <ColumnDefinition Width="50" /> 12 <!--<ColumnDefinition Width="Auto" SharedSizeGroup="A" />--> 13 <!-- としたいところだがUWPでは不可 --> 14 <ColumnDefinition Width="*" /> 15 <ColumnDefinition Width="70" /> 16 <ColumnDefinition Width="*" /> 17 <ColumnDefinition Width="2*" /> 18 </Grid.ColumnDefinitions> 19・・・ 20 </Grid> 21 </DataTemplate> 22 </ListView.ItemTemplate> 23</ListView>

各列の最大幅に合わせたい場合は、SharedSizeGroupがないので簡単にはできないですね。
DataGridでやるほうが楽だと思います。

NuGet Gallery | Microsoft.Toolkit.Uwp.UI.Controls.DataGrid
DataGrid XAML Control - Windows Community Toolkit | Microsoft Docs

投稿2020/03/05 00:52

編集2023/07/21 08:33
TN8001

総合スコア9317

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問