XAML编码规范

Posted by JP on July 24, 2019

XAML编码规范

一、代码可读性

a) 每行放一个属性

<TextBlock FontWeight="Bold"
           Foreground="White" 
           HorizontalAlignment="Right" 
           Text="{Binding ArticlesCountText"
           TextWrapping="Wrap" />

b) 在元素内,按字母顺序排序属性

<Image Source="/Assets/Shares/NeutralImage.png"
       Height="125"
       HorizontalAlignment="Center"
       Width="125"
       Stretch="UniformToFill"    
       VerticalAlignment="Center" />

c) 将x:Name或x:Key作为第一个属性

<Button x:Name = "ButtonValidation"
        Content = "Hello world"
        Width="100"
        Height="30"/>

这些属性比任何其他属性更重要,因为:

  • 它们确定控件的唯一性
  • 它们确定控件是否被使用(故事板,代码隐藏,绑定,……)

d) 如果元素没有内容,请使用自闭元素

<Button x:Name = "ButtonValidation"
        Content = "Hello world"
        Width="100"
        Height="30"/>

当元素未声明子标记并使用显式结束标记时,会违反此规则。这导致太多的空间浪费。如下:

<Button x:Name = "ButtonValidation"
        Content = "Hello world"
        Width="100"
        Height="30"></Button>

e) 把关联的属性放在最前面并按字母顺序排列

<Button Grid.Column="1" 
        Grid.Row="2" 
        Command="{Binding ShowWriterCommand}" 
        CommandParameter="{Binding WriterAshley}"
        Style="{StaticResource HubTileButtonStyle}" />

Grid.Column / Grid.Row属性就是典型的例子

二、命名

a) 使用 Pascal Casing

<Button x:Name = "ButtonCheckout" 
        Content = "Checkout" />

三、可维护性

当属性值在不同位置使用超过2次时,为了获得更好的可维护性,必须将此属性值声明为资源。

  • 将值移动到资源
  • 用StaticResource绑定替换所有值使用。

四、推荐工具

强烈推荐在VisualStudio中安装XAML Styler插件,XAML Styler是Visual Studio扩展,它基于一组样式规则来格式化XAML源代码。此工具可以帮助我们更好的维护XAML编码样式以及提高XAML的可读性。
你可以在VisualStudio的拓展功能中,搜索XAML Styler并添加此插件。 除了该插件提供的默认格式化样式外,您也可以通过修改XAML默认样式External Configurations,来实现自定义代码风格。

Reference: