回答編集履歴

1

見直しキャンペーン中

2023/07/22 08:26

投稿

TN8001
TN8001

スコア9862

test CHANGED
@@ -1,103 +1,52 @@
1
1
  `ListView`に`GridViewColumn`を自動調整する機能はないので、サイズ変更時にカラム幅を計算し再設定するコードを書くことになります。
2
-
3
- 「wpf gridviewcolumn autosize」「wpf gridviewcolumn 自動」等で検索するといくつかヒットします。
4
-
5
-
2
+ 「[wpf gridviewcolumn autosize](https://www.google.co.jp/search?q=wpf+gridviewcolumn+autosize)」「[wpf gridviewcolumn 自動](https://www.google.co.jp/search?q=wpf+gridviewcolumn+%E8%87%AA%E5%8B%95)」等で検索するといくつかヒットします。
6
3
 
7
4
  手軽に導入できないかとNuGetで調べたところ、`WPF.ListViewLayoutManager`というのがありました。簡単に試した範囲では問題なく動作しました。
8
-
9
5
  [ListView Layout Manager - CodeProject](https://www.codeproject.com/Articles/25058/ListView-Layout-Manager)
10
-
11
-
12
6
 
13
7
  `ctrl:なんちゃら`というのを付けるだけで自動調整してくれます。
14
8
 
15
-
16
-
17
- ```xaml
9
+ ```xml
18
-
19
10
  <Window
20
-
21
11
  x:Class="Questions275037.MainWindow"
22
-
23
12
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
24
-
25
13
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
26
-
27
14
  xmlns:ctrl="clr-namespace:Itenso.Windows.Controls.ListViewLayout;assembly=Itenso.Windows.Controls.ListViewLayout"
28
-
29
15
  Width="800"
30
-
31
16
  Height="450">
32
-
33
17
  <DockPanel>
34
-
35
18
  <StackPanel DockPanel.Dock="Top">
36
-
37
19
  <Button Click="list_add_Click" Content="add" />
38
-
39
20
  <Button Click="list_get_Click" Content="get" />
40
-
41
21
  </StackPanel>
42
-
43
22
  <ListView
44
-
45
23
  x:Name="lv"
46
-
47
24
  ctrl:ListViewLayoutManager.Enabled="true"
48
-
49
25
  SelectionMode="Single">
50
-
51
26
  <ListView.View>
52
-
53
27
  <GridView>
54
28
 
55
-
56
-
57
29
  <!-- 自動で広がるカラム -->
58
-
59
30
  <GridViewColumn
60
-
61
31
  Width="550"
62
-
63
32
  ctrl:RangeColumn.IsFillColumn="true"
64
-
65
33
  DisplayMemberBinding="{Binding Path=[0]}"
66
-
67
34
  Header="hoge" />
68
35
 
69
-
70
-
71
36
  <!-- 最小サイズがあるカラム -->
72
-
73
37
  <GridViewColumn
74
-
75
38
  ctrl:RangeColumn.MinWidth="50"
76
-
77
39
  DisplayMemberBinding="{Binding Path=[1]}"
78
-
79
40
  Header="fuga" />
80
41
 
81
-
82
-
83
42
  <!-- 固定サイズのカラム -->
84
-
85
43
  <GridViewColumn
86
-
87
44
  ctrl:FixedColumn.Width="50"
88
-
89
45
  DisplayMemberBinding="{Binding Path=[1]}"
90
-
91
46
  Header="fuga" />
92
-
93
47
  </GridView>
94
-
95
48
  </ListView.View>
96
-
97
49
  </ListView>
98
-
99
50
  </DockPanel>
100
-
101
51
  </Window>
102
-
103
52
  ```