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

一、目的:分享如何使用XAML Styler以及在不同的开发环境中使用一致

        XAML Styler 是一个 Visual Studio 扩展,用于自动格式化和整理 XAML 文件。它可以帮助开发者保持一致的代码风格,提高代码的可读性和可维护性。以下是如何在 Visual Studio 中安装和使用 XAML Styler 的详细步骤。 


二、安装 XAML Styler


1.    打开 Visual Studio。
2.    导航到 扩展 > 管理扩展。
3.    在扩展管理器中,搜索 XAML Styler。
4.    点击 下载 并安装 XAML Styler 扩展。
5.    重启 Visual Studio 以完成安装。


三、配置 XAML Styler


1.    打开 XAML Styler 设置:
•    在 Visual Studio 中,导航到 工具 > 选项。
•    在选项窗口中,找到 XAML Styler。
2.    配置 XAML Styler:
•    在 XAML Styler 设置中,您可以根据需要配置各种选项,如属性排序规则、缩进设置、换行规则等。


四、创建 settings.xamlstyler 配置文件(可选)


如果您希望在项目中使用自定义的 XAML Styler 配置并且在不同的开发环境中使用一致,可以创建一个 settings.xamlstyler 文件


1.    创建 settings.xamlstyler 文件:


•    在项目的根目录中创建一个名为 settings.xamlstyler 的文件。

 


2.    添加配置:


•    在 settings.xamlstyler 文件中添加所需的配置。

例如:

{"AttributesTolerance": 1,"KeepFirstAttributeOnSameLine": true,"MaxAttributeCharactersPerLine": 0,"MaxAttributesPerLine": 1,"NewlineExemptionElements": "RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransform, SkewTransform, RotateTransform, TranslateTransform, Trigger, Condition, Setter","SeparateByGroups": false,"AttributeIndentation": 0,"AttributeIndentationStyle": 1,"RemoveDesignTimeReferences": false,"EnableAttributeReordering": true,"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"],"FirstLineAttributes": "","OrderAttributesByName": true,"PutEndingBracketOnNewLine": false,"RemoveEndingTagOfEmptyElement": true,"SpaceBeforeClosingSlash": true,"RootElementLineBreakRule": 0,"ReorderVSM": 1,"ReorderGridChildren": false,"ReorderCanvasChildren": false,"ReorderSetters": 0,"FormatMarkupExtension": true,"NoNewLineMarkupExtensions": "x:Bind, Binding","ThicknessSeparator": 2,"ThicknessAttributes": "Margin, Padding, BorderThickness, ThumbnailClipMargin","FormatOnSave": true,"CommentPadding": 2,"IndentSize": 4
}

3.    配置 XAML Styler 使用 settings.xamlstyler:


•    在 XAML Styler 设置中,找到 Search to drivers root,将该值设置成true(此时就会到根目录去找settings.xamlstyler配置)。
•    或者选择 External configuration file,并指定 settings.xamlstyler 文件的路径(本人没有测试是否可用)。


五、使用 XAML Styler 格式化 XAML 文件


1.    手动格式化:


•    打开一个 XAML 文件。
•    右键点击文件内容,选择 Format Xaml或使用快捷键应用格式化。


2.    自动格式化:


•    如果在 settings.xamlstyler 文件中启用了 FormatOnSave 选项,保存 XAML 文件时将自动应用格式化。


六、示例


以下是一个示例 XAML 文件,展示了如何使用 XAML Styler 格式化:
原始 XAML 文件

<Window x:Class="H.Test.Halcon.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:ha="http://schemas.mvtec.com/halcondotnet" xmlns:local="clr-namespace:H.Test.Halcon" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:s="clr-namespace:SkiaSharp.Drawing2D.Shape.Shape;assembly=SkiaSharp.Drawing2D.Shape" Title="MainWindow" Width="800" Height="450" mc:Ignorable="d"><Window.DataContext><local:MainViewModel /></Window.DataContext><DockPanel><DockPanel DockPanel.Dock="Top" LastChildFill="False"><Button Command="{Binding LoadCommand}" Content="Load" /><Button Command="{Binding CreateCommand}" Content="Create Model" /><Button Command="{Binding ApplyCommand}" Content="Apply" /><Button Command="{Binding ApplyModelCommand}" Content="Apply Model" /><Button Command="{Binding FindShapeCommand}" Content="Find Shape" /></DockPanel><TabControl><TabItem Header="Image"><Image Source="{Binding ImageSource}" /></TabItem><TabItem Header="ViewStateShapeView"><Grid><ViewStateShapeView><ViewStateShapeView.Shape><s:ImageBluePrintShape ImageSource="{GetAssetsSKBitmapMarkupExtension 1.jpg}" /></ViewStateShapeView.Shape><ViewStateShapeView.InputShapes></ViewStateShapeView.InputShapes></ViewStateShapeView></Grid></TabItem><TabItem Header="ViewStateShapeView"><Grid><ViewStateShapeView Shape="{Binding Shape}" Shapes="{Binding Shapes}" /></Grid></TabItem></TabControl></DockPanel>
</Window>

 格式化后的 XAML 文件

<Window x:Class="H.Test.Halcon.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:ha="http://schemas.mvtec.com/halcondotnet"xmlns:local="clr-namespace:H.Test.Halcon"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:s="clr-namespace:SkiaSharp.Drawing2D.Shape.Shape;assembly=SkiaSharp.Drawing2D.Shape"Title="MainWindow"Width="800"Height="450"mc:Ignorable="d"><Window.DataContext><local:MainViewModel /></Window.DataContext><DockPanel><DockPanel DockPanel.Dock="Top"LastChildFill="False"><Button Command="{Binding LoadCommand}"Content="Load" /><Button Command="{Binding CreateCommand}"Content="Create Model" /><Button Command="{Binding ApplyCommand}"Content="Apply" /><Button Command="{Binding ApplyModelCommand}"Content="Apply Model" /><Button Command="{Binding FindShapeCommand}"Content="Find Shape" /></DockPanel><TabControl><TabItem Header="Image"><Image Source="{Binding ImageSource}" /></TabItem><TabItem Header="ViewStateShapeView"><Grid><ViewStateShapeView><ViewStateShapeView.Shape><s:ImageBluePrintShape ImageSource="{GetAssetsSKBitmapMarkupExtension 1.jpg}" /></ViewStateShapeView.Shape><ViewStateShapeView.InputShapes></ViewStateShapeView.InputShapes></ViewStateShapeView></Grid></TabItem><TabItem Header="ViewStateShapeView"><Grid><ViewStateShapeView Shape="{Binding Shape}"Shapes="{Binding Shapes}" /></Grid></TabItem></TabControl></DockPanel>
</Window>

七、总结


        通过上述步骤,您可以在 Visual Studio 中安装和使用 XAML Styler,自动格式化和整理 XAML 文件。这样可以确保所有 XAML 文件遵循一致的格式化规则,提高代码的可读性和可维护性。

        如果想在多平台共用配置可以参考四部分的配置。

需要了解的知识点 

XAML概述 - WPF .NET | Microsoft Learn

XAML 语法详述 - WPF .NET Framework | Microsoft Learn 

XAML - WPF .NET Framework | Microsoft Learn 

标记扩展和 XAML - WPF .NET Framework | Microsoft Learn 

XAML 及自定义类 - WPF .NET Framework | Microsoft Learn 

XAML 命名空间 (x:) 语言功能 - XAML | Microsoft Learn 

XAML 扩展 - WPF .NET Framework | Microsoft Learn 

基元素概述 - WPF .NET Framework | Microsoft Learn 

System.Windows.Controls 命名空间 | Microsoft Learn

控件库 - WPF .NET Framework | Microsoft Learn

WPF 介绍 | Microsoft Learn

Windows Presentation Foundation 简介 - WPF .NET | Microsoft Learn

使用 Visual Studio 创建新应用教程 - WPF .NET | Microsoft Learn

了解更多

适用于 .NET 8 的 WPF 的新增功能 - WPF .NET | Microsoft Learn

适用于 .NET 7 的 WPF 的新增功能 - WPF .NET | Microsoft Learn

System.Windows.Controls 命名空间 | Microsoft Learn

Reference Source

Sysinternals - Sysinternals | Microsoft Learn

Windows app development documentation - Windows apps | Microsoft Learn

欢迎使用 Expression Blend | Microsoft Learn

https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/?view=netdesktop-7.0&WT.mc_id=MVP_380318

https://github.com/HeBianGu

HeBianGu的个人空间-HeBianGu个人主页-哔哩哔哩视频

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/72662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式存储学习——HBase概述

1.1 HBase概述 1.1.1 理解大数据背景 1.1.2 HBase是什么 1.1.3 HBase与Hadoop的关系 1.1.4 HBase的核心功能模块 1.1.5 HBase的应用场景和经典案例 1.1.6 小结 本文参考于学校《HBase应用于开发》教材 1.1 HBase概述 本节将介绍大数据背景和HBase的基本概念&#xff0c…

交叉编译openssl及curl

操作环境&#xff1a;Ubuntu20.04 IDE工具&#xff1a;Clion2020.2 curl下载地址&#xff1a;https://curl.se/download/ openssl下载地址&#xff1a;https://openssl-library.org/source/old/index.html 直接交叉编译curl会报错找不到openssl&#xff0c;所以需要先交叉编…

MDM 如何彻底改变医疗设备的远程管理

在现代医疗行业迅速发展的格局中&#xff0c;医院和诊所越来越依赖诸如医疗平板和移动工作站等移动设备。这些设备在提高工作效率和提供卓越的患者护理方面发挥着关键作用。然而&#xff0c;随着它们的广泛使用&#xff0c;也带来了一系列挑战&#xff0c;例如在不同地点确保数…

零基础C语言学习日志22(自定义类型:联合和枚举)

目录 联合体 联合体类型的声明 联合体的特点 相同成员联合体和结构体的对比 联合体大小的计算 例子 枚举类型 枚举类型的声明 枚举类型的优点 枚举类型的使用 联合体 联合体类型的声明 像结构体一样&#xff0c;联合体也是由一个或者多个成员构成&#xff0c;这些成…

天津大学02-深度解读DeepSeek:部署、使用、安全【文末附下载链接】

大模型风险与不当用例——价值观错位 大模型与人类价值观、期望之间的不一致而导致的安全问题&#xff0c;包含&#xff1a;• 社会偏见&#xff08;Social Bias&#xff09;LLM在生成文本时强化对特定社会群体的刻板印象&#xff0c;例如将穆斯林与恐怖主义关联&#xff0c;或…

[C语言日寄] 字符串操作函数的使用及其拓展

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋&#xff1a;这是一个专注于C语言刷题的专栏&#xff0c;精选题目&#xff0c;搭配详细题解、拓展算法。从基础语法到复杂算法&#xff0c;题目涉及的知识点全面覆盖&#xff0c;助力你系统提升。无论你是初学者&#xff0c;还是…

Qt 进度条与多线程应用、基于 Qt 的文件复制工具开发

练习1&#xff1a;Qt 进度条与多线程应用 题目描述 开发一个基于 Qt 的应用程序&#xff0c;该应用程序包含一个水平进度条&#xff08;QSlider&#xff09;&#xff0c;并且需要通过多线程来更新进度条的值。请根据以下要求完成代码&#xff1a; 界面设计&#xff1a; 使用 QS…

Gartner:数据安全平台DSP提升数据流转及使用安全

2025 年 1 月 7 日&#xff0c;Gartner 发布“China Context&#xff1a;Market Guide for Data Security Platforms”&#xff08;《数据安全平台市场指南——中国篇》&#xff0c;以下简称指南&#xff09;&#xff0c;报告主要聚焦中国数据安全平台&#xff08;Data Securit…

道可云人工智能每日资讯|《奇遇三星堆》VR沉浸探索展(淮安站)开展

道可云元宇宙每日简报&#xff08;2025年3月5日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 《奇遇三星堆》VR沉浸探索展&#xff08;淮安站&#xff09;开展 近日&#xff0c;《奇遇三星堆》VR沉浸探索展&#xff08;淮安站&#xff09;开展。该展将三星堆文…

Spring AI Alibaba + Ollama:国产大模型DeepSeek LLM的低成本AI应用开发认知

写在前面 官方文档很详细&#xff0c;有开发需求可以直接看文档https://java2ai.com/docs/1.0.0-M5.1/get-started/博文内容为一个开发Demo&#xff0c;以及API简单认知理解不足小伙伴帮忙指正 &#x1f603;,生活加油 我看远山&#xff0c;远山悲悯 持续分享技术干货&#xf…

解决:Word 保存文档失败,重启电脑后,Word 在试图打开文件时遇到错误

杀千刀的微软&#xff0c;设计的 Word 是个几把&#xff0c;用 LaTex 写完公式&#xff0c;然后保存&#xff0c;卡的飞起 我看文档卡了很久&#xff0c;就关闭文档&#xff0c;然后 TMD 脑抽了重启电脑 重启之后&#xff0c;文档打不开了&#xff0c;显示 杀千刀的&#xff…

掌握高效大模型任务流搭建术(二):链式流程如何赋能 AI 处理能力提升

前言&#xff1a; 在上一篇文章中&#xff0c;我们初步探索了 LangChain 的基础链式操作——LLMChain。它巧妙地将大语言模型&#xff08;LLM&#xff09;与提示模板&#xff08;Prompt Template&#xff09;相结合&#xff0c;为模型交互逻辑的封装提供了一种简洁而高效的方式…

虚拟卡 WildCard (野卡) 保姆级开卡教程

本文首发于只抄博客&#xff0c;欢迎点击原文链接了解更多内容。 前言 本篇教程为 WildCard 的介绍以及开卡教学&#xff0c;要了解不同平台&#xff08;Grok、Talkatone 等&#xff09;的订阅方式请移步《订阅教程》分类 当我们想要充值国外平台会员时&#xff0c;一般都需要使…

计算机数据库三级刷题总结(博主89分已过,总结的内容分享)

计算机数据库三级刷题总结&#xff08;博主89分已过&#xff0c;总结的内容分享&#xff09; 文章目录 计算机数据库三级刷题总结&#xff08;博主89分已过&#xff0c;总结的内容分享&#xff09;一、 数据库设计阶段二、事务相关三、数据库设计顺序四、数据库三级模式与二层映…

记录一些面试遇到的问题

重载和重写的区别 重载是overload&#xff0c;覆盖是override 重载属于编译时多态&#xff0c;覆盖属于运行时多态 运行时多态和编译时多态 运行时多态指的是在运行的时候才知道要调用哪一个函数&#xff0c;编译时多态是指在编译的时候就知道调用哪一个函数。 运行时多态…

HBuilder X 使用 TortoiseSVN 设置快捷键方法

HBuilder X 使用 TortoiseSVN 设置快捷键方法 单文件&#xff1a;(上锁&#xff0c;解锁&#xff0c;提交&#xff0c;更新) 安装好 TortoiseSVN &#xff0c;或者 按图操作&#xff1a; 1&#xff0c;工具栏中 【自定义快捷键】 2&#xff0c;点击 默认的快捷键设置&…

JmeterHttp请求头管理出现Unsupported Media Type问题解决

JmeterHttp请求头管理出现Unsupported Media Type问题解决 大多数的app与pc端压测的时候都会出现这种情况 当我们在jemter测试当中当中遇见Unsupported Media Type&#xff0c;有一种可能就是我们请求的网页的content-Type的类型与我们测试的时候的类型不一致 解决方法 可以添…

Spring AI 1.0.0-M6 快速开始(一)

Spring AI 1.0.0-M6 入门一、存储库二、依赖管理完整maven 入门 Spring 是JAVA中我们经常使用的框架之一&#xff0c;Spring AI不断的发展迭代目前已经到M6版本据说上半年会出一个稳定版本。 本节提供了如何开始使用Spring AI的M6。 一、存储库 1.0 M6 -添加Spring存储库 需…

顶点着色器和片段着色器

在Unity渲染中&#xff0c;**顶点着色器&#xff08;Vertex Shader&#xff09;和片段着色器&#xff08;Fragment Shader&#xff09;**是图形渲染管线中的两个核心阶段。我们可以通过一个比喻来理解它们的分工&#xff1a;想象你要画一幅由三角形组成的3D模型&#xff0c;顶点…

Impacket工具中的横向渗透利器及其使用场景对比详解

在渗透测试中&#xff0c;横向移动&#xff08;Lateral Movement&#xff09;是指攻击者在获得一个系统的控制权限后&#xff0c;通过网络进一步渗透到其他系统的过程。Impacket 是一款强大的渗透测试工具集&#xff0c;提供了多种实现横向渗透的脚本&#xff0c;常见的工具包括…