我的XAML编码规范
作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs去年,我们建立了自己的C#编码规范,我说服同事遵循我写的编码规范。或许我是一个偏执狂吧,如果我看到有人不遵守我写的编码规范,而是去修改它,我可能通宵都睡不着。
借助Visual Studio的优秀插件ReSharper,可以很轻松地按照规则对代码进行格式化。你只需按下Ctrl-E / Ctrl-C,就可以对代码文档进行格式化。ReSharper是Visual Studio必备的工具。(图1)
自Windows Phone平台发布的两年以来,我一直使用XAML语言设计用户界面。查看C#的编码习惯是很容易的,但是对于XAML,就很困难了。
下面是Windows存储网格应用项目的例子:
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<Grid Margin="7,7,0,0">
<Button
AutomationProperties.Name="Group Title"
Click="Header_Click"
Style="{StaticResource TextPrimaryButtonStyle}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Title}" Margin="3,-7,10,10" Style="{StaticResource GroupHeaderTextStyle}" />
<TextBlock Text="{StaticResource ChevronGlyph}" FontFamily="Segoe UI Symbol" Margin="0,-7,0,10" Style="{StaticResource GroupHeaderTextStyle}"/>
</StackPanel>
</Button>
</Grid>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListView.GroupStyle>
首先,没有空行。其次,按钮的属性在不同的行。而对于TextBlock元素,属性却在同一行,且没有任何顺序。
在过了很长一段时间后,我编写了自己的XAML编码规范。其中一个原因是,我不喜欢使用"属性"窗口,因为它很难有一个全面的属性设置,而不是设置为默认。(图2)
我的编码规范可简述为以下5点:
1 元素之间放入空行。
不要担心空行太多,它会使代码更易读。
<Grid Height="250"
VerticalAlignment="Top">
<Image Source="{Binding FeatureArticle1.Thumbnail}"
Style="{StaticResource ImageThumbnailStyle}" />
<StackPanel Style="{StaticResource StackPanelSummaryStyle}">
<TextBlock FontSize="22"
Style="{StaticResource TextBlockAuthorStyle}"
Text="{Binding FeatureArticle1.Author}" />
<TextBlock FontSize="26"
Height="70"
Style="{StaticResource TextBlockSummaryStyle}"
Text="{Binding FeatureArticle1.Title}" />
</StackPanel>
</Grid>
但是只有Grid.ColumnDefinition和Grid.RowDefinitions例外,因为它们只有一行属性。
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="200" />
<RowDefinition Height="140" />
</Grid.RowDefinitions>
2 每个属性放一行。
<TextBlock FontWeight="Bold"
Foreground="White"
HorizontalAlignment="Right"
Margin="0,0,12,0"
Text="{Binding ArticlesCountText}"
TextWrapping="Wrap" />
3 属性按字母表排序。
<Image Source="/Assets/Shares/NeutralImage.png"
Height="125"
HorizontalAlignment="Center"
Width="125"
Stretch="UniformToFill"
VerticalAlignment="Center" />
有人说,高度Height和宽度Width应该放在一起,但作者还是喜欢按字母表顺序对属性排序。作者认为这更容易检查是否有属性设置漏了。
4 把附加属性放在起始位置并以字母表顺序放置。
<Button Grid.Column="1"
Grid.Row="2"
Command="{Binding ShowWriterCommand}"
CommandParameter="{Binding WriterAshley}"
Style="{StaticResource HubTileButtonStyle}" />
5 样式的定义可以不用那么严格。
当使用Expression Blend创建样式时,作者倾向于留下更大的空间,减少限制。这样的话,会节省很多时间。
<Style x:Key="GridFeatureStyle"
TargetType="Grid">
<Setter Property="Height"
Value="194" />
<Setter Property="VerticalAlignment"
Value="Top" />
<Setter Property="Width"
Value="194" />
</Style>
结论
这可能并非完美的解决方案,但如果你遵循它的话,这是一个良好的开端,特别是在团队协作的时候。
分享到:
相关推荐
### AduSkin编码规范知识点详解 #### 一、概述 AduSkin是一个专注于提供美观、易用、可定制UI组件的框架,适用于Windows平台上的WPF应用开发。为了确保项目的一致性和高质量,AduSkin制定了一套详细的编码规范。...
2. **高度可定制**:用户可以根据项目需求调整代码格式化规则,如缩进方式、空格数量、标签对齐等,以符合团队编码规范。 3. **效率提升**:自动格式化功能极大地减少了手动整理代码的时间,使开发者能更专注于逻辑...
1. **自动格式化**:当开发者编写或编辑XAML代码时,XamlStyler会自动进行代码格式化,使代码更整洁、易读,遵循最佳编码实践。这包括缩进、换行、属性排序等。 2. **命名约定**:插件支持自定义或预设的命名规则,...
1. **编码**:确保所有XML文件都使用相同的字符编码,通常是UTF-8,以正确显示各种语言的特殊字符。 2. **格式规范**:遵循一致的命名规则和结构,便于管理和维护。例如,可以将所有语言的XML文件放在同一目录下,...
1. **软件工程**:软件工程是系统化、规范化、可量化的方法来开发、操作和维护软件的过程。在这个Project 2中,可能会涉及需求分析、设计、编码、测试和维护等阶段,这些都是软件工程的基础。 2. **求职面试**:在...
同时,这个工具包通常会遵循良好的编码规范和设计模式,比如MVVM(Model-View-ViewModel),这有助于你理解和实践软件工程的最佳实践。 在实际应用中,Kino.Toolkit.Wpf的集成并不复杂,开发者可以通过NuGet包管理...
此外,源代码中的注释和编程实践还能帮助提高编码规范和技巧。 总的来说,ComponentArt.Silverlight.Demos.2009.1.2002 Source是一个宝贵的教育资源,特别是对于那些希望在ASP.NET Web应用程序中使用Silverlight...
同时,考虑到可扩展性和可维护性,代码应遵循良好的设计原则和编码规范。 总的来说,"silverlight图片滑动"是一个集成了UI设计、动画制作、数据绑定和事件处理的项目,体现了Silverlight作为RIA(Rich Internet ...
微软开源计算器源码的发布,为开发者提供了一个深入了解操作系统组件实现的...同时,这也是一个向微软编码规范和最佳实践学习的好机会。对于那些希望在Windows平台上开发应用的人来说,这是一个不容错过的学习资源。
通常,开源项目会遵循一定的代码规范和命名约定,以提高代码可读性和维护性。开发者可能会将业务逻辑、UI逻辑和数据模型分离,便于代码的复用和测试。 在"ImageViewer-master"这个压缩包中,我们可能找到以下文件和...
这些主题通过改变控件的外观和感觉,使应用程序能够符合不同的用户界面偏好和设计规范。开发者可以根据自己的需求选择合适的主题,或者作为起点进行自定义设计。 首先,使用Silverlight Toolkit中的主题非常简单。...
文档服务涵盖了XPS文档(XML Paper Specification)和开放包装规范(Open Packaging Conventions),使得创建和处理文档变得更加便捷。此外,WPF的用户界面服务包括应用服务、部署、控件、布局、数据绑定等,这些...
4. 自动格式化:ILSpy能够自动格式化反编译出的源代码,使其更符合编码规范,易于阅读。 5. 类视图:ILSpy提供了一个类视图窗口,用户可以通过这个窗口快速导航到感兴趣的类型和成员。 6. 资源查看器:除了源代码...
用户还可以自定义这些规则以适应团队的编码规范。 2. **重构工具**:此插件包含多种重构选项,如提取方法、重命名变量和转换条件语句。这使得代码更易于理解和维护,同时减少了出错的可能性。 3. **代码分析**:...
- **统一的开发标准**:制定清晰的编码规范和文档标准,确保不同语言之间的代码风格一致。 - **持续集成/持续部署(CI/CD)**:自动化测试和部署流程,减少人工干预,提升软件质量和发布速度。 - **跨语言框架和库的...
开发者可能使用C#和XAML进行编码,并通过Visual Studio进行调试,同时利用WinRT API、Live Tiles和推送通知等特性提升应用的性能和用户体验。测试版本的发布则意味着用户有机会提前试用新功能并提供反馈,帮助开发者...
- StyleCop:静态代码分析工具,确保代码遵循一定的编码规范。 - Productivity Pack:包含多个提高开发效率的小工具,如快速打开文件、多选项目等。 通过导入这些VS插件,开发者可以极大地提升工作效率,简化开发...
7. **代码质量检查**:集成代码分析功能,生成的代码遵循最佳实践和编码规范,避免潜在的错误和性能问题。 8. **版本控制集成**:与Git、SVN等版本控制系统无缝集成,方便代码生成后直接提交。 9. **用户界面设计*...
`.editorconfig`文件用于定义代码编辑器的样式和规范,确保团队成员在编写代码时遵循一致的编码风格。`.gitignore`文件则指示Git版本控制系统忽略特定的文件或文件夹,防止它们被添加到版本控制中,例如,这里可能...