我刚刚找到了 Xaml Styler,我想尝试一下。有人可以分享一些使用这个工具的经验吗?值得一试吗?在大型团队中使用它有什么缺点吗?
谢谢!
我每天都在使用它,它非常棒。这绝对值得一试,而且我没有看到任何缺点。
如果您选择从默认设置转移,请确保每个人都具有相同的设置。
我非常喜欢 XAML Styler。尽管源代码控制问题确实发生了。如果你美化一个 XAML 文档,如果你做的时候它真的很丑的话,这可能意味着 1800 行的改变。如果您的团队成员也对其进行了检查,那么他们必须解决 1800 行更改。因此,我建议您在团队环境中谨慎选择何时以及使用哪些文件执行此操作。
技巧:当XAML页面是当前选项卡并且您点击[保存]时,它会美化XAML页面。
如果您不想美化页面,请切换到其他选项卡并选择[全部保存]。
当其他团队成员签出相同的文档时,我就是这样做的。如果我是唯一的一个,那么我会进行正常的保存以使其美观,然后尽快检查。
使用这个工具一段时间后,我不得不说我不推荐它,因为:
希望它对某人有帮助!
我最近开始使用这个工具——而且我是它的忠实粉丝——但有一件事真的让我很恼火:每当你点击“保存”时,它就会自动格式化所有内容。我喜欢在 VS 中使用行号旁边的绿色编辑标记来跟踪我在大文件中的位置。每当我点击“保存”时,整个文件就会变成绿色。
所以专业提示,如果您在“工具”>“选项”>“XAML 样式器”中关闭“保存时设置 XAML 格式”,则当您不再需要编辑标记时,只需右键单击文件并选择格式即可。
我强烈建议您对 XAML Styler 使用以下配置:
下载 VS 2022 的 Xaml Styler 扩展 https://marketplace.visualstudio.com/items?itemName=TeamXavalon.XAMLStyler
将下面的代码保存在名为 Settings.XamlStyler 的文件中,并将其放在解决方案 (.sln) 文件的同一文件夹中。
{
"AttributesTolerance": 1,
"KeepFirstAttributeOnSameLine": true,
"MaxAttributeCharactersPerLine": 0,
"MaxAttributesPerLine": 1,
"NewlineExemptionElements": "RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransform, SkewTransform, RotateTransform, TranslateTransform, Trigger, Condition, Setter",
"SeparateByGroups": false,
"AttributeIndentation": 0,
"AttributeIndentationStyle": 0,
"RemoveDesignTimeReferences": false,
"IgnoreDesignTimeReferencePrefix": false,
"EnableAttributeReordering": true,
"FirstLineAttributes": "x:Class, Grid.Row, Grid.Column, Grid.RowSpan, Grid.ColumnSpan, DockPanel.Dock, Orientation",
"AttributeOrderingRuleGroups": [
"d:DataContext",
"xmlns, xmlns:x",
"xmlns:*",
"x:Key, Key, x:Name, Name, x:Uid, Uid, Title",
"x:Class, Grid.Row, Grid.Column, Grid.RowSpan, Grid.ColumnSpan, DockPanel.Dock, Orientation",
"Canvas.Left, Canvas.Top, Canvas.Right, Canvas.Bottom",
"DataContext, Text, Content, Source, Command, CommandParameter, ItemSource, ItemsSource",
"DisplayMemberPath, SelectedItem, SelectedValue, SelectedIndex",
"Margin, Padding, HorizontalAlignment, VerticalAlignment, HorizontalContentAlignment, VerticalContentAlignment, Panel.ZIndex",
"Width, Height, MinWidth, MinHeight, MaxWidth, MaxHeight",
"UpImageSource, DownImageSource",
"IsEnabled, Visibility",
"*:*, *",
"PageSource, PageIndex, Offset, Color, TargetName, Property, Value, StartPoint, EndPoint",
"mc:Ignorable, d:IsDataSource, d:LayoutOverrides, d:IsStaticText",
"Storyboard.*, From, To, Duration"
],
"OrderAttributesByName": true,
"PutEndingBracketOnNewLine": false,
"RemoveEndingTagOfEmptyElement": true,
"SpaceBeforeClosingSlash": true,
"RootElementLineBreakRule": 0,
"ReorderVSM": 1,
"ReorderGridChildren": false,
"ReorderCanvasChildren": false,
"ReorderSetters": 3,
"FormatMarkupExtension": false,
"NoNewLineElements": "RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransform, SkewTransform, RotateTransform, TranslateTransform, Trigger, Condition, Setter, Style",
"NoNewLineMarkupExtensions": "x:Bind, Binding",
"ThicknessSeparator": 2,
"ThicknessAttributes": "Margin, Padding, BorderThickness, ThumbnailClipMargin",
"PutAttributeOrderRuleGroupsOnSeparateLines": false,
"FormatOnSave": true,
"CommentPadding": 2,
"SaveAndCloseOnFormat": true }
此配置还将在保存时自动格式化任何 xaml 文件。
它还适用于 .NET MAUI,可能还适用于 UWP 和 WinUI。