モノトーンの伝説日記

Apex Legends, Splatoon, Programming, and so on...

xamlで使えるレイアウト パネル

 いろいろありすぎてわからなくなってきたので、自分用にメモ。

Panel

 特殊な物(一部のコントロール専用に作られているもの)は、列挙しない。

仮想化 (Virtualizing) が効かないレイアウト パネル

WPF
(System.Windows.~)
WinRT
(Windows.UI.Xaml.~)
WinUI
(Microsoft.UI.Xaml.~)
Community Toolkit
(CommunityToolkit.WinUI.UI.~)
Panel
(abstract class)
Panel -
Canvas Canvas -
DockPanel - - DockPanel
Grid Grid -
- - LayoutPanel
(WinUI 2.5 以降)
-
- RelativePanel -
StackPanel StackPanel -
- - - StaggeredPanel
(Pinterest Layout)
UniformGrid - - UniformGrid
- VariableSizedWrapGrid -
WrapPanel - - WrapPanel

仮想化 (Virtualizing) が効くレイアウト パネル

 Items~ListViewGridView のために作られたもの。VirtualizingPanel を継承しないが、仮想化される。

WPF
(System.Windows.~)
WinRT
(Windows.UI.Xaml.~)
WinUI
(Microsoft.UI.Xaml.~)
Community Toolkit
(CommunityToolkit.WinUI.UI.~)
- ItemsStackPanel -
- ItemsWrapGrid -
VirtualizingPanel VirtualizingPanel -
VirtualizingStackPanel VirtualizingStackPanel -
- WrapGrid -

Layout

 WinUI 2.1 からレイアウトだけが切り離された。基本的に仮想化を前提とするレイアウトは今後、こちらで実装するのが一般的になるだろう。

 これらのクラスは再利用でき、Panel を継承する LayoutPanelListViewGridView のような繰り返し要素をもつ ItemsRepeater が存在する。