いろいろありすぎてわからなくなってきたので、自分用にメモ。
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~ は ListView や GridView のために作られたもの。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 を継承する LayoutPanel や ListView や GridView のような繰り返し要素をもつ ItemsRepeater が存在する。
- NonVirtualizingLayout
- VirtualizingLayout
- FlowLayout (WrapPanel の仮想化対応版として使えます。参考: XAML Repeater Control)
- StackLayout (VirtualizingStackPanel のレイアウト版)
- UniformGridLayout
- (Community Toolkit) StaggeredLayout
- (Community Toolkit) WrapLayout