使用 XAML 格式化工具:XAML Styler

Visual Studio 2022搭配XAML Styler:拯救强迫症的WPF/XAML自动格式化与保存即美化实战 本文详细介绍了如何在Visual Studio 2022中配置XAML Styler,实现WPF/XAML代码的自动格式化与保存即美化。通过基础配置、高级技巧和团队共享配置的实战讲解,帮助开发者提升代码可读性和协作效率,特别适合追求代码整洁的强迫症开发者。 阅读详情

1. XAML 的问题

刚入门 WPF/UWP 之类的 XAML 平台,首先会接触到 XAML 这一新事物。初学 XAML 时对它的印象可以归纳为一个词:一坨。

随着我在 XAML 平台上工作的时间越来越长,我对 XAML 的了解就越来越深入,从语法、约束、扩展性等方方面面,我明白到 XAML 是桌面开发平台的一个最佳解决方案。这时候我已经对 XAML 有了改观,我重新用一个词归纳了我对它的印象:一大坨。

没错,这时候我已经是一个成熟的 XAML 工人了,经过我熟练的双手产生了一坨又一坨 XAML,它们成长相遇结合繁衍,变成了一大坨又一大坨 XAML。

明明 XAML 这么一大坨已经够艰难了,偏偏对于它的格式化微软爸爸也没给个好的方案。对我来说,XAML 格式化主要的难题是下面几个:

  • 如果所有属性都写在同一行,它太宽了很难看到后面的属性
  • 如果每个属性单独一行,它又太长了很难看清楚它的结构
  • 属性之间没有排序,重要属性的属性找起来很困难
  • 团队没有统一的标准,不小心格式化一下代码的话全部都会变,CodeReview 烦死个人

如果不想得过且过忍受上述这些问题的话,可以试试用 XAML Styler 这个工具,它正好解决了我最想解决的问题。

2. 安装 XAML Styler

XAML Styler 是一个 VisualStudio插件(也可用于其它 IDE),这是它在 Github 上的地址:

https://github.com/Xavalon/XamlStyler

在这里你可以找到具体的文档,而这篇文章我只介绍我关心的其中几个属性,不一定满足到你。

在 VisualStudio 的管理扩展窗口中,输入 XamlStyle 搜索,点击“下载”然后关闭 VisualStudio 即可完成安装。

安装完成后重启 Visual Studio,可以在“选项”窗口中看到它的配置:

之后,每次在 XAML 编辑器中执行保存都会自动进行格式化操作。你也可以在 XAML 编辑器的右键菜单选择 Format XAML 或使用快捷键进行格式化。

3. 格式化

XAML 的格式主要有两种方式:所有属性放一行和每个属性单独一行。

如果选择所有属性放一行的时候,XAML 结构清晰,结构严谨,段落分明,而且文件也很短。

可是万一很多属性问题就出来了,一行 XAML 会变得很长。而且看看下面两个 ContentPresenter,同样都有 Margin 属性、HorizontalAlignment 属性,VerticalAlignment 属性,RecognizesAccessKey 属性,SnapsToDevicePixels 顺序ing,但你能看到第二个 ContentPresenter 后面偷偷塞了个 Margin 吗:

<ContentPresenter Margin="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<ContentPresenter Margin="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="40"/>

如果在 VisualStudio 中“文本编辑器->XAML->格式化->间距->特性间距”这个选项中选择了“将各个属性分别放置”:

格式化文档后上面的 XAML 就会变成这样:

<ContentPresenter Margin="{TemplateBinding Padding}"
                  HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                  VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                  RecognizesAccessKey="True"
                  SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
<ContentPresenter Margin="{TemplateBinding Padding}"
                  HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                  VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                  RecognizesAccessKey="True"
                  SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
                  Margin="40" />

每个属性单独一行不仅不会看漏属性,而且编辑器本身也不会有横向和纵向两种方向的移动,只有从上到下的移动,这就舒服多了。

可是大部分情况下每个属性分行放置会破坏原本清晰的 XAML 层次结构,例如下面这种本来好好的 XAML:

<Setter Property="FontWeight" Value="Normal" />
<Setter Property="UseSystemFocusVisuals" Value="True" />
<Setter Property="FocusVisualMargin" Value="-3" />
<Setter Property="Height" Value="50" />
<Setter Property="Width" Value="50" />
<Setter Property="Maximum" Value="1" />

变成这样:

<Setter Property="FontWeight"
        Value="Normal" />
<Setter Property="UseSystemFocusVisuals"
        Value="True" />
<Setter Property="FocusVisualMargin"
        Value="-3" />
<Setter Property="Height"
        Value="50" />
<Setter Property="Width"
        Value="50" />
<Setter Property="Maximum"
        Value="1" />

这种风格优雅得像诗歌
我偶尔称为豆瓣风
一行变两行
两行变四行
本来
一页看得完
的代码
变成
两页才看得完
也是够
麻烦的。

XAML Styler 很好地解决了这个问题,它通过 “Attribute tolerance” 属性控制每一行的容许的最多的属性数量,如果一个元素的属性数量少于设定值,那就放在一行,如果超过就所有属性单独一行。通常我将这个属性设置为 2,再配合 “Keep first attribute on same line = true” 的设置,可以做到下面这种格式化效果:

<SolidColorBrush x:Key="NormalTextColor" Color="#2E2F33" />
<SolidColorBrush x:Key="PrimaryColor" Color="#FFED5B8C" />
<SolidColorBrush x:Key="LineColor" Color="#E1E1E1" />
<SolidColorBrush x:Key="TransparentBackground" Color="Transparent" />

<ControlTemplate x:Key="CompletedTemplate" TargetType="ContentControl">
    <Grid x:Name="CompletedElement" Margin="-2">
        <control:DropShadowPanel HorizontalContentAlignment="Stretch"
                                 VerticalContentAlignment="Stretch"
                                 BlurRadius="8"
                                 OffsetX="0"
                                 OffsetY="0"
                                 Color="#FFED5B8C">
            <Ellipse x:Name="CompletedRectangle" Fill="{StaticResource PrimaryColor}" />
        </control:DropShadowPanel>
    </Grid>
</ControlTemplate>

这样就可以兼顾两种格式化的优点。

4. 排序

如果元素有多个属性,要找到它的主要属性(通常是 Name 和 Grid.Row)需要颇费一番功夫。XAML Styler 根据一个可设定的规则自动将元素的各个属性排序,这个规则如下:

"AttributeOrderingRuleGroups": [
    "x:Class",
    "xmlns, xmlns:x",
    "xmlns:*",
    "x:Key, Key, x:Name, Name, x:Uid, Uid, Title",
    "Grid.Row, Grid.RowSpan, Grid.Column, Grid.ColumnSpan, Canvas.Left, Canvas.Top, Canvas.Right, Canvas.Bottom",
    "Width, Height, MinWidth, MinHeight, MaxWidth, MaxHeight",
    "Margin, Padding, HorizontalAlignment, VerticalAlignment, HorizontalContentAlignment, VerticalContentAlignment, Panel.ZIndex",
    "*:*, *",
    "PageSource, PageIndex, Offset, Color, TargetName, Property, Value, StartPoint, EndPoint",
    "mc:Ignorable, d:IsDataSource, d:LayoutOverrides, d:IsStaticText",
    "Storyboard.*, From, To, Duration"
],

排序结果大致如下:

<Button x:Name="Show"
        Grid.Row="1"
        Padding="40,20"
        HorizontalAlignment="Center"
        VerticalAlignment="Center"
        Background="#00aef1"
        Content="Show"
        Foreground="White"
        Style="{StaticResource BubbleButtonStyle}" />

另外,我不喜欢它自动将 VisualStateManager 排序到后面,虽然这个排序合理,但不符合我的习惯,所以要将 “Record visual state manager” 设置为 None。

5. 统一标准

最后,就算自己做好了格式化,团队中的其它成员使用了不同的格式化标准也会引起很多问题。针对这个问题 Xaml Styler 也提供了解决方案。

在项目的根目录创建一个名为“Settings.XamlStyler”的文件,内容参考这个网址:https://github.com/Xavalon/XamlStyler/wiki/External-Configurations 中的 Default Configuration。有了这个配置文件,XAML Styler 就会根据它而不是全局配置进行格式化,作为项目的统一格式化标准。

拯救你的WPF项目:手把手教你用XAML Styler配置自动保存格式化,告别手动整理 本文详细介绍了如何使用XAML Styler在Visual Studio中配置自动保存格式化,解决WPF项目中XAML文件格式混乱的问题。通过安装扩展、基础配置和高级定制,开发者可以提升代码一致性、可读性和团队协作效率,告别手动整理XAML的繁琐工作。 阅读详情

相关推荐

WPF XAML 格式化工具(XAML Styler)使用说明

1、下载:VS2017中下载路径:工具-扩展和更新 关闭vs后自动弹出安装界面,如下: 安装完成2、使用:方式一:打开XAML文档,右键 点击 Format XAML。方式二:CTRL+S 保存XAML文档后,XAML自动格式化。...

qq_30725967的博客 2002

WPF开发XAML格式化神器

一、概要 不知道大家在开发WPF中有没有遇到过这种情况,在编写XAML的时候会发现多人编辑或自己修修改改会导致XAML文件的内容异常的乱比如这样。 我们需要手动的去缩进空格或者换行,会导致这种比较蠢的事情浪费我开发时间。这里向大家推荐一款XAML格式化神器解决这个头疼而且还费时间的事情。 二、详细步骤 第一步,在VS2019中找到扩展。 第二步,打开管理扩展界面。 第三步,在右侧搜索框输入XAML会自动搜索出XAML Styler 第四步,下载安装 第五步,重启VS201

Deokoo的专栏 1052

XamlStyler:Visual Studio扩展可帮助格式化XAML源代码

XAML样式器 XAML样式器是Visual Studio扩展,它基于一组样式规则来格式化XAML源代码。 此工具可以帮助您/您的团队维护更好的XAML编码样式以及更好的XAML可读性。 资料下载 查看 入门 右键单击任何文件,然后选择“格式化XAML”以格式化XAML源代码。 感谢我们的贡献者

C-开发 visual Studio扩展插件介绍-格式化插件Xaml Styler、CSharpier介绍(扩展插件安装方法)

提高C#开发效率常用的插件。格式化工具Xaml Styler、CSharpier介绍,扩展插件安装方法介绍

海盗Sharp的博客 2919

Xaml格式化工具.zip

C#开发,含源码,可根据实际需要而改动代码,编译成自己定制的工具。工具代替人,效率会提高很多,且工具在于反复使用,用得越多,创造的价值越多,需要的请拿去!

在 Windows 上使用 Anaconda 创建 配置 YOLOv8虚拟环境,并更改 pip 源以及以 可编辑模式 安装ultralytics

前往 NVIDIA cuDNN 下载页面,下载与您安装的 CUDA 版本匹配的 cuDNN 版本。:根据您的系统和 CUDA 版本,选择适当的 whl 文件。如下12.7,表示最高可装12.7版本CUDA,与上图中的支持的最高cuda版本一致。,无需重新安装,从而大幅提升开发效率,适用于项目开发、调试或依赖本地未发布的版本时使用,但需确保当前目录包含。:访问 NVIDIA 官方网站,下载与您的显卡和操作系统兼容的 CUDA 版本。首先,确保NVIDIA 显卡支持 CUDA,并安装相应版本的驱动程序。

weixin_44115575的博客 1883

为什么选择XAML Styler?Visual Studio XAML格式化工具对比评测

XAML Styler是一款专为Visual Studio打造的XAML代码格式化扩展工具,它能够帮助开发者自动整理XAML代码结构,提升代码可读性和团队协作效率。作为一款开源工具,XAML Styler提供了丰富的自定义选项,让开发者可以根据项目需求灵活调整代码风格。 ## 📊 XAML格式化工具对比分析 在Visual Studio生态中,常见的XAML格式化工具包括内置格式化功能、Re

gitblog_00668的博客 1051

STM32F407ZGT6开发板跑马灯实战:从原理图到烧录全流程(附FlyMcu配置)

本文以正点原子F4探索者开发板(STM32F407ZGT6)为例,手把手指导完成跑马灯实验。内容涵盖从原理图解读、GPIO驱动逻辑分析、HAL库工程搭建,到代码编写与FlyMcu串口烧录配置的全流程,帮助嵌入式开发新手快速实现第一个LED控制程序,打通软硬件开发链路。

weixin_29183637的博客 219

笔记:如何使用XAML Styler以及在不同的开发环境中使用一致

通过上述步骤,您可以在 Visual Studio 中安装和使用 XAML Styler,自动格式化和整理 XAML 文件。这样可以确保所有 XAML 文件遵循一致的格式化规则,提高代码的可读性和可维护性。如果想在多平台共用配置可以参考四部分的配置。

HeBianGu的博客 1720

PyTorch、Torchvision、Torchaudio历史版本whl文件下载地址、版本对应关系与离线安装全攻略

本文详细解析了PyTorch、Torchvision和Torchaudio历史版本whl文件的下载地址、版本对应关系及离线安装全攻略。针对无网络环境下的安装挑战,提供了官方whl文件获取路径、版本匹配技巧和完整安装流程,帮助开发者高效解决兼容性问题,确保深度学习环境的稳定部署。

weixin_31960565的博客 369

Hadoop与Kafka集群部署与优化实践指南

分布式系统是现代大数据处理的核心架构,其中Hadoop作为分布式存储与计算框架,Kafka作为分布式消息队列系统,共同构成了实时数据处理的基础设施。通过HDFS实现海量数据存储,结合YARN进行资源调度,而Kafka则保障了数据流的实时传输与高吞吐。这种技术组合在电商用户行为分析、物联网数据采集等场景中表现卓越。部署过程中需关注硬件资源配置、关键参数调优以及集群监控方案,例如通过调整HDFS块大小和Kafka partition数量来优化性能。合理运用Flume、Spark Streaming等工具可实现系

weixin_29061997的博客 356

XAML Styler完全指南:提升Visual Studio XAML代码可读性的终极工具

XAML Styler是一款强大的Visual Studio扩展工具,专为提升XAML代码的可读性和一致性而设计。作为开发者的得力助手,它能够自动格式化XAML代码,让你的界面设计代码更加整洁、专业,显著提高团队协作效率。 ## 📋 为什么选择XAML Styler? 在WPF、UWP或Xamarin开发中,XAML代码往往冗长且复杂。手动格式化不仅耗时,还难以保持团队内的风格统一。XAML

gitblog_00257的博客 824

COMSOL两相流(相场法)

COMSOL是一款功能非常强大的多物理场仿真软件,拥有可视化和后处理工具,可方便有效的展示您的仿真效果,具有灵活、高效、友好的特点,软件能够为用户提供各类工程问题的解决方案,从而帮助广大研究和工程人员能够在科研上取得新突破。 COMSOL可以实现声学、传热、流体力学、结构力学等方面的模拟仿真,具体模块如下图所示。 COMSOL软件设置流程 定义需要求解的问题类型:针对一个需要仿真的问题,需要先对问题进行分析;分析该问题用到哪些物理场,什么样的几何模型,以及如何设置研究等。该步骤可以使用COMSOL中的

weixin_47139559的博客 1万+

【亲测免费】 **打造极致XAML代码阅读体验:XAML Styler——您的代码美容师**

在当今的软件开发领域中,UI设计和交互逻辑的重要性日益凸显。WPF作为Windows平台上强大的UI框架之一,其核心便是XAML(Extensible Application Markup Language),一种用于描述用户界面的语言。然而,随着应用复杂度的提升,如何保持XAML源码的整洁和一致性成为了一个挑战。为了解决这一难题,**XAML Styler**应运而生。 ## 项目介绍 **...

gitblog_00232的博客 1160

uniapp - HBuilder提示adb: failed to install X Failure [INSTALL_ARSE_FAILED_NOT_APK:X(安装HBuilder调试基座失败)

安装HBuilderX调试基座失败,uniapp APP运行到手机adb: failed to install,Uniapp提示adb,uniapp ios 真机调试报错 uniapp安卓调试,Uniapp安装不了基座,手动安装基座,正在安装手机端HBuilder调试基座,点击运行到手机报错信息:基座无法正常安装,Uniapp-安装HBuilder调试基座失败解决方案,解决 HBuilderX 安卓基座安装失败的问题,显示adb报错,UniApp苹果真机运行调试(自定义基座,版本更新后/没有基座打开失败)如

🏆 前端领域优质创作者 8056

基于STM32+ESP8266+手机APP的心率血氧温湿度监测报警系统设计(项目资料ID:18)

基于 STM32 微控制器、ESP8266 无线模块和 QT 手机 APP 的多参数监测报警系统。该系统可实时采集心率、血氧饱和度、环境温湿度等参数,通过 OLED 显示屏本地显示,并通过 WiFi 模块上传至手机 APP 实现远程监测与数据可视化。系统具备报警阈值自定义功能,当参数超出设定范围时,通过蜂鸣器和 LED 进行声光报警。系统以 STM32F103 为控制核心,采用 MAX30102 传感器采集心率和血氧,DHT20 采集温湿度,通过 ESP8266 实现无线通信,配合 QT 开发的手机 APP

以培养嵌入式工程师为己任 1万+

如何在5分钟内安装并使用XAML Styler:Visual Studio格式美化插件上手教程

XAML Styler是一款强大的Visual Studio扩展工具,专为美化和格式化XAML源代码设计。无论是新手开发者还是经验丰富的工程师,都能通过这款工具快速提升XAML代码的可读性和一致性,让界面开发更高效、更规范。 ## 📌 核心功能亮点 XAML Styler作为一款专注于XAML格式优化的插件,主要提供以下核心功能: - **自动代码格式化**:一键整理杂乱的XAML代码结构

gitblog_00178的博客 674

【技能】OpenClaw Memory 与 MemOS 两种 AI 记忆方案深度解析

摘要:本文对比了两种AI记忆系统方案。OpenClaw Memory是轻量级记忆助手,内置SQLite存储,支持语义搜索,部署简单成本低,适合日常对话记忆需求。MemOS是自学习系统,通过Neo4j和Qdrant实现技能自进化,但需部署4套服务,门槛高成本大。建议普通用户选择OpenClaw Memory,技术玩家可逐步尝试MemOS。两种方案各具优势,需根据实际需求选择。

海兰 183

XAML Styler高级技巧:从入门到精通的格式化规则优化策略

XAML Styler是一款强大的Visual Studio扩展工具,专为优化XAML源代码格式而设计。通过灵活的配置选项和智能格式化规则,它能帮助开发者自动整理XAML文件结构,提升代码可读性和团队协作效率。本文将分享从基础设置到高级定制的全方位技巧,让你轻松掌握XAML代码美化的核心方法。 ## 一、初识XAML Styler:安装与基础配置 XAML Styler提供了多种安装方式,最便

gitblog_00820的博客 449

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

XAML Styler配置指南:自定义格式化规则打造团队统一编码风格

XAML Styler是一款强大的Visual Studio扩展工具,能够帮助开发者自动格式化XAML源代码,通过自定义配置规则实现团队统一的编码风格。本文将详细介绍如何配置XAML Styler,让你的XAML代码更加规范、易读。 ### 🌟 为什么需要XAML Styler? 在团队协作开发中,统一的代码风格至关重要。XAML作为WPF、UWP等应用的界面描述语言,其格式的规范性直接影响

gitblog_00164的博客 321

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

WPF Xaml格式化工具

对Xaml文件进行格式化

qq_44050457的博客 1282

WPF XAML 格式化工具(XAML Styler)

安装XAMLStyler时若报错提示包类型不支持,可尝试安装低版本。安装成功后,使用Ctrl+S快捷键即可快速格式化XAML代码。文中展示了使用前后的对比效果,帮助开发者直观了解该工具的作用。

weixin_73964676的博客 587

C#,WPF项目XAML Styler插件的Settings.XamlStyler配置文件样例

Settings.XamlStyler 文件是 XAML Styler 插件的配置文件,用于定义 XAML 代码的格式化规则。将该文件放置在 Visual Studio 的项目根目录下,插件会自动读取并应用其中的设置。

weixin_44542183的博客 784

XAML Styler常见问题解决:开发者必知的15个实用技巧

XAML Styler是一款强大的Visual Studio扩展工具,专为格式化XAML源代码设计,能帮助开发者自动整理XAML文件结构,提升代码可读性和开发效率。本文将分享15个实用技巧,助你轻松解决使用过程中遇到的常见问题。 ## 一、安装与配置基础 ### 1. 快速安装XAML Styler的正确姿势 确保在Visual Studio中通过扩展市场搜索"XAML Styler"进行安装

gitblog_00674的博客 540

使用Visual Studio扩展(XAML Styler for Visual Studio 2022)格式化xaml、axaml文件

转载。

明耀的博客 1210
上一篇: [WPF] 在单元测试中使用 Prism 的 EventAggregator,订阅到 ThreadOption.UIThread 会报错
下一篇: [UWP] 模仿哔哩哔哩的一键三连
dino.c
博客等级 码龄14年 39粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值