いろいろありすぎてわからなくなってきたので、自分用にメモ。
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