XAML でのプロパティ記述順序

XAML でのプロパティの記述順序を考えてみました。

WPF にまだまだ不慣れな私は、XAML をいろいろ書いて試しているうちに、プロパティがどんどん増えていって、グチャグチャになりがちです。思いついたままに定義していくので、順序に一貫性もなく…。そこで、改めてプロパティの記述順序を考えてみようと思い立ちました。と言っても、プロパティはクラスによって様々あるので、全部考えるのは大変だし徒労に終わりそうなので、自分がよく使っているものをとりあえず記載しました。今後も必要に応じて追加していこう。

ポリシーとしては、

  • 表示、配置など、他の要素にも影響を及すプロパティを再優先に。(Width や HorizontalAlignment など)
  • 次に、Boolean 型で定義されるような、汎用的かつスイッチ的なプロパティを。(IsEnabled や Focusable など)
  • 最後に、個々の型に特有のプロパティを。(TextBlock.Text や ItemsControl.ItemsSource など)

としていますが、「結局、最後は好みだよね」と。

公式ルールとか、あるのかな?おすすめのルールがあれば、教えてください。

プロパティ 定義クラス
Left System.Windows.Window
Top System.Windows.Window
Width System.Windows.FrameworkElement
MinWidth System.Windows.FrameworkElement
MaxWidth System.Windows.FrameworkElement
Height System.Windows.FrameworkElement
MinHeight System.Windows.FrameworkElement
MaxHeight System.Windows.FrameworkElement
HorizontalAlignment System.Windows.FrameworkElement
VerticalAlignment System.Windows.FrameworkElement
Visibility System.Window.UIElement
Margin System.Windows.FrameworkElement
Padding System.Windows.Controls.Control
BorderThickness System.Windows.Controls.Control
BorderBrush System.Windows.Controls.Control
Background System.Windows.Controls.Control
Foreground System.Windows.Controls.Control
Opacity System.Window.UIElement
OpacityMask System.Window.UIElement
DataContext System.Windows.FrameworkElement
ToolTip System.Windows.FrameworkElement
HorizontalContentAlignment System.Windows.Controls.Control
VerticalContentAlignment System.Windows.Controls.Control
Template System.Windows.Controls.Control
Resources System.Windows.FrameworkElement
Style System.Windows.FrameworkElement
ContextMenu System.Windows.FrameworkElement
AllowDrop System.Window.UIElement
Focusable System.Window.UIElement
IsEnabled System.Window.UIElement
IsHitTestVisible System.Window.UIElement
IsTabStop System.Windows.Controls.Control
Title System.Windows.Window
Icon System.Windows.Window
SizeToContent System.Windows.Window
ResizeMode System.Windows.Window
WindowStartupLocation System.Windows.Window
ShowInTaskbar System.Windows.Window
Topmost System.Windows.Window
Content System.Windows.Controls.ContentControl
SelectedValue System.Windows.Controls.Primitives.Selector
Orientation System.Windows.Controls.StackPanel
Command System.Windows.Controls.Primitives.ButtonBase
CommandParameter System.Windows.Controls.Primitives.ButtonBase
IsChecked System.Windows.Controls.Primitives.ToggleButton
IsDefault System.Windows.Controls.Button
Text System.Windows.Controls.TextBlock
Source System.Windows.Controls.Image
ItemsSource System.Windows.Controls.ItemsControl
DisplayMemberPath System.Windows.Controls.ItemsControl
ItemsPanel System.Windows.Controls.ItemsControl
ItemContainerStyle System.Windows.Controls.ItemsControl
ItemContainerStyleSelector System.Windows.Controls.ItemsControl
ItemTemplate System.Windows.Controls.ItemsControl
ItemTemplateSelector System.Windows.Controls.ItemsControl
ItemStringFormat System.Windows.Controls.ItemsControl

KPDN

プログラミングとゲームが好きな、しがないにゃんこ好きです。わんこも同じぐらい好きです。最近、物忘れどんどんが酷くなってきた。

コメントを残す