diff --git a/CONTRIBUTING.en-US.md b/CONTRIBUTING.en-US.md
index a8434c4..03f9fdd 100644
--- a/CONTRIBUTING.en-US.md
+++ b/CONTRIBUTING.en-US.md
@@ -101,7 +101,7 @@ launcher-home/
### Space between latin and other characters
-For some language-specified documents (e.g. Chinese), it's essential to use spaces between [Chinese] and [English/letters/numbers/minor-symbols].
+For some language-specified documents (e.g. Chinese), it's essential to use spaces between [Chinese] and [English/letters/numbers/minor-symbols].
### Always use English symbols (with exceptions)
@@ -113,7 +113,7 @@ For short date, please use `MM/dd/yyyy` format (e.g `05/02/2024`). for long date
For time, always follow `HH:mm` or `HH:mm:ss` rule (e.g. `16:20`, `08:06:45`). **The military time** (24-hour clock) will always be used.
-The rules above applies to all documents and all locales, no matter what language the document is.
+The rules above applies to all documents and all locales, no matter what language the document is.
### Example
@@ -121,7 +121,7 @@ For example, avoid writing like this:
```md
2024.5.2 4:08 | 2nd May 2024 | 2024年5月2日下午4点8分
-我买了34个苹果(是红的)和1只鸡【不知道是公鸡 / 还是 / 母鸡】。
+我买了34个苹果 (是红的) 和1只鸡【不知道是公鸡 / 还是 / 母鸡】。
```
Instead, write like this for better readability:
@@ -135,7 +135,7 @@ Instead, write like this for better readability:
This guide aims to provide a clear and comprehensive overview of the document structure for (potential) contributors like you. It covers naming conventions, file structure, and specific rules for writing documents.
-If you have any questions, you can submit an issue on Github, join our community, or contact us directly via [email](mailto://notyoojun@outlook.com). If there's anything unclear in this article, feel free to tell us or submit a Pull Request. We greatly appreciate your valuable work, which makes the documentation center better!
+If you have any questions, you can submit an issue on GitHub, join our community, or contact us directly via [email](mailto://notyoojun@outlook.com). If there's anything unclear in this article, feel free to tell us or submit a Pull Request. We greatly appreciate your valuable work, which makes the documentation center better!
diff --git a/CONTRIBUTING.zh-CN.md b/CONTRIBUTING.zh-CN.md
index 38a3c16..1a0c9a9 100644
--- a/CONTRIBUTING.zh-CN.md
+++ b/CONTRIBUTING.zh-CN.md
@@ -22,13 +22,13 @@
每篇文章都有其指定的文件夹,由一个两位数的数字表示 + "." (如果你想手动排序),一个 # 号加空格,再加上 kebab 格式的 slug ~~以及烤肉串盒中的蛞蝓~~组成。举个例子,一篇关于按钮设计的文章会嵌套在文件夹中,如下所示:`02.# button-design`。在列举控件和 API 的时候,我们更倾向于让其根据字母自动排序,就可以写:`# button-design`。
-- **文章元数据和内容文件**:在这些文件夹中,`index.meta.yml` 包含以 YAML 格式跨语言共享的元数据。在名为`index.{language_code}.mdx`,每个都包含特定于该语言的前 Front matter 数据。
+- **文章元数据和内容文件**:在这些文件夹中,`index.meta.yml` 包含以 YAML 格式跨语言共享的元数据。在名为`index.{language_code}.mdx`,每个都包含特定于该语言的前 Front matter 数据。
关于 Font matter 的更多信息,请参见: [markdown-features#front-matter](https://docusaurus.io/zh-CN/docs/markdown-features#front-matter) 和 [plugin-content-docs#markdown-front-matter](https://docusaurus.io/zh-CN/docs/api/plugins/@docusaurus/plugin-content-docs#markdown-front-matter)。
示例:`index.en-US.mdx`,`index.zh-CN.mdx`
-- **图像命名**:文章中的图片应当和 **index.{语言代号}.mdx** 存在同一目录内,并且以简短的 kebab 形式命名,比如 `create-a-new-project.png`。对于屏幕截图和其他较小的图片,请使用 PNG 格式,对于较大的图片,请使用 JPG 或 JPEG 格式。
+- **图像命名**:文章中的图片应当和 **index.{语言代号}.mdx** 存在同一目录内,并且以简短的 kebab 形式命名,比如 `create-a-new-project.png`。对于屏幕截图和其他较小的图片,请使用 PNG 格式,对于较大的图片,请使用 JPG 或 JPEG 格式。
示例:`create-new-project.png`,`mountain-view.jpg`
@@ -40,7 +40,7 @@
MDX 的强大功能可以将内容与其独特功能相结合。使用 Markdown 清晰地重建您的想法,并使用 Markdown 格式强调重要元素,以引导读者更加层次分明地了解信息。
-我们鼓励您在正确的地方使用**告示 (Admonitions)** (一种由 Docusaurus 提供的 MDX 特性),以提供清晰舒适的外观。您可以转到 [admonitions](https://docusaurus.io/zh-CN/docs/markdown-features/admonitions) 来了解更多.
+我们鼓励您在正确的地方使用**告示 (Admonitions)** (一种由 Docusaurus 提供的 MDX 特性) ,以提供清晰舒适的外观。您可以转到 [admonitions](https://docusaurus.io/zh-CN/docs/markdown-features/admonitions) 来了解更多.
请记住,请为步骤和其他方案使用正确的标题结构。例如,这看起来不太好:
@@ -121,7 +121,7 @@ launcher-home/
```
2024.5.2 4:08 | 2nd May 2024 | 2024年5月2日下午4点8分
-我买了34个苹果(是红的)和1只鸡【不知道是公鸡 / 还是 / 母鸡】。
+我买了34个苹果 (是红的) 和1只鸡【不知道是公鸡 / 还是 / 母鸡】。
```
相反,为了更好的可读性,请这样写:
@@ -135,7 +135,7 @@ launcher-home/
本指南旨在为 (潜在) 贡献者 (比如正在看这篇文章的你) 提供清晰而全面的文档结构概述。它涵盖了命名方式、文件架构以及编写文档的特定规则。
-如果您有任何问题,可以在 Github issues 中~~开票~~提交问题,加入我们的社区,或通过[电子邮件](mailto://notyoojun@outlook.com)直接联系我们。如果有文章有哪里没讲清楚,也可以直接提交 Pull Request。我们非常感谢您的重要工作,这会使文档中心变得更好!
+如果您有任何问题,可以在 GitHub issues 中~~开票~~提交问题,加入我们的社区,或通过[电子邮件](mailto://notyoojun@outlook.com)直接联系我们。如果有文章有哪里没讲清楚,也可以直接提交 Pull Request。我们非常感谢您的重要工作,这会使文档中心变得更好!
@@ -155,17 +155,17 @@ launcher-home/
> 如果是文章:02.# article-name
> 前面的数字是显示在侧边栏的序号,接下来有.作为分隔符。
>
-> 如果这个文件夹是分类(里面有其他文章),那个就在点后面加空格并写分类的slug(采用kebab命名格式) ,
-> 分类文件夹下应该有_category_.json,_category_.en-US.json,等,他们包含了这一分组的元数据。对于不同语言公用的元数据(比如此分类是否默认展开),就会在_category_.json中;对于语言特定的元数据(比如显示名称,描述),就在_category_.{语言代码}.json中。
+> 如果这个文件夹是分类 (里面有其他文章) ,那个就在点后面加空格并写分类的slug (采用kebab命名格式) ,
+> 分类文件夹下应该有_category_.json,_category_.en-US.json,等,他们包含了这一分组的元数据。对于不同语言公用的元数据 (比如此分类是否默认展开) ,就会在_category_.json中;对于语言特定的元数据 (比如显示名称,描述) ,就在_category_.{语言代码}.json中。
> 这个文件中可以写的内容请详见:https://docusaurus.io/zh-CN/docs/sidebar/autogenerated#category-item-metadata
>
-> 如果这个文件夹是单个文章,那么文件名在序号和点之后应该有一个#号,并且#和slug之间有空格。对于单个文章的文件夹,里面应该有index.meta.yml(单篇文章共用元数据),和内容index.{语言代号}.mdx(如index.en-US.mdx和index.zh-CN.mdx)。对于不同语言公用的元数据,就会在index.meta.yml中以yaml格式存储;队医单个语言特定的元数据,则存储在index.{语言代号}.mdx的front matter中。关于元数据请参见:https://docusaurus.io/zh-CN/docs/markdown-features#front-matter 和 https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-docs#markdown-front-matter。
+> 如果这个文件夹是单个文章,那么文件名在序号和点之后应该有一个#号,并且#和slug之间有空格。对于单个文章的文件夹,里面应该有index.meta.yml (单篇文章共用元数据) ,和内容index.{语言代号}.mdx (如index.en-US.mdx和index.zh-CN.mdx) 。对于不同语言公用的元数据,就会在index.meta.yml中以yaml格式存储;对于单个语言特定的元数据,则存储在index.{语言代号}.mdx的front matter中。关于元数据请参见:https://docusaurus.io/zh-CN/docs/markdown-features#front-matter 和 https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-docs#markdown-front-matter。
> 文章中的图片应当和index.{..}.mdx存在同一目录内,并且以简短的kebab形式命名,比如 create-a-new-project.png。对于屏幕截图和其他较小的图片,请使用png格式,对于较大的图片,请使用jpg格式。
>
-> 文章内采用mdx格式进行编写,建议积极使用MDX的特殊功能,如告示(https://docusaurus.io/zh-CN/docs/markdown-features/admonitions)。
+> 文章内采用mdx格式进行编写,建议积极使用MDX的特殊功能,如告示 (https://docusaurus.io/zh-CN/docs/markdown-features/admonitions) 。
> 请严格按照markdown的1-3级标题规划文章结构,并在合适的位置使用****,``,**,等markdown格式,这样能让读者更好地分清重点。
>
-> 在编写中文文章时,请一定要注意在 [中文] 和 [英文/字母/数字/半角符号] 中使用空格。所有括号请使用半角符号,并在括号的外侧各添加一个空格。(斜线可以不加空格)
-> 比如错误示范:2024年5月2日,我买了34个苹果(是红的)和1只鸡【不知道是公鸡 / 还是 / 母鸡】。
+> 在编写中文文章时,请一定要注意在 [中文] 和 [英文/字母/数字/半角符号] 中使用空格。所有括号请使用半角符号,并在括号的外侧各添加一个空格。 (斜线可以不加空格)
+> 比如错误示范:2024年5月2日,我买了34个苹果 (是红的) 和1只鸡【不知道是公鸡 / 还是 / 母鸡】。
> 正确示范:2024 年 5 月 2 日,我买了 34 个苹果 (是红的) 和 1 只鸡 [不知道是公鸡/还是/母鸡]。
> ```
diff --git a/data/blogs/announcements/2024-01-17-social-username-change/index.en-US.mdx b/data/blogs/announcements/2024-01-17-social-username-change/index.en-US.mdx
index e4c7a4b..f1178a2 100644
--- a/data/blogs/announcements/2024-01-17-social-username-change/index.en-US.mdx
+++ b/data/blogs/announcements/2024-01-17-social-username-change/index.en-US.mdx
@@ -11,9 +11,9 @@ New link: https://github.com/iNKORE-NET
{/* truncate */}
-This transition will affect all the existing links or references to our organization on Github. We recommend updating your bookmarks and favorites to reflect the new name.
+This transition will affect all the existing links or references to our organization on GitHub. We recommend updating your bookmarks and favorites to reflect the new name.
-We believe this change will enhance our online visibility and make it easier for people to engage with us on Github. We look forward to continuing to share our projects and collaborate with others in the open-source community under our new name.
+We believe this change will enhance our online visibility and make it easier for people to engage with us on GitHub. We look forward to continuing to share our projects and collaborate with others in the open-source community under our new name.
Best regards,
NotYoojun.! from iNKORE Studios
diff --git a/data/blogs/announcements/2024-01-17-social-username-change/index.zh-CN.mdx b/data/blogs/announcements/2024-01-17-social-username-change/index.zh-CN.mdx
index 218d7fd..01a933a 100644
--- a/data/blogs/announcements/2024-01-17-social-username-change/index.zh-CN.mdx
+++ b/data/blogs/announcements/2024-01-17-social-username-change/index.zh-CN.mdx
@@ -11,9 +11,9 @@ tags: [工作室, 名称, 用户名, 社交, 公告]
{/* truncate */}
-此转换将影响 Github 上对我们组织的所有现有链接或引用。我们建议您更新书签和收藏夹以反映新名称。
+此转换将影响 GitHub 上对我们组织的所有现有链接或引用。我们建议您更新书签和收藏夹以反映新名称。
-我们相信这一变化将提高我们的在线知名度,并使人们更容易在 Github 上与我们互动。我们期待继续分享我们的项目,并以我们的新名称与开源社区中的其他人合作。
+我们相信这一变化将提高我们的在线知名度,并使人们更容易在 GitHub 上与我们互动。我们期待继续分享我们的项目,并以我们的新名称与开源社区中的其他人合作。
此致敬意
NotYoojun.! 来自 iNKORE Studios
diff --git a/data/blogs/blog/2024-09-17-reflection-interest-in-opensource-community/index.en-US.mdx b/data/blogs/blog/2024-09-17-reflection-interest-in-opensource-community/index.en-US.mdx
index 8fdef8f..e9fb99f 100644
--- a/data/blogs/blog/2024-09-17-reflection-interest-in-opensource-community/index.en-US.mdx
+++ b/data/blogs/blog/2024-09-17-reflection-interest-in-opensource-community/index.en-US.mdx
@@ -37,13 +37,13 @@ https://github.com/iNKORE-NET/UI.WPF.Modern
### Background
-I remember when I just started our studio's first desktop application, I decided to use WPF for development, but the interface that Microsoft made for WPF... it's really hard to judge. After several hours, I found a project called ModernWpf on Github. The controls in it are all in the style of Windows 10, and at this time Windows 11 has been released, so I was thinking, is there a control library in the style of Windows 11? Later I found a branch repository of ModernWpf, and the controls in it are in the style of Windows 11.
+I remember when I just started our studio's first desktop application, I decided to use WPF for development, but the interface that Microsoft made for WPF... it's really hard to judge. After several hours, I found a project called ModernWpf on GitHub. The controls in it are all in the style of Windows 10, and at this time Windows 11 has been released, so I was thinking, is there a control library in the style of Windows 11? Later I found a branch repository of ModernWpf, and the controls in it are in the style of Windows 11.
The author of this fork is one of the main characters in this incident, let's just call him Whatwhat. I looked at the license of this library, it was (and is) the MIT license, so I forked this library and started my control library journey. Before I started my control library, I also tried to connect with the original author Whatwhat, to begin with he wanted me to join his ModernWpf project. Whatwhat's idea is "porting UWP", while my idea is "creating WPF", so we fell out.
After that, I started my control library journey, I named this library iUWM, the purpose of this library is to make it easier for WPF developers to use Windows 11 style controls. I added a lot of my own ideas to this library, such as control styles, control behaviors, etc., for example, I gave users the ability to completely control the window title bar height and buttons, which Whatwhat thought should not exist.
-At first, I wrote this library mainly for myself and the studio's projects, so I casually made the repository public on Github, but I didn't expect this repository to be discovered quickly, and now it has a considerable number of stars and usage. I am very happy and proud. However, Whatwhat does not buy it, he thought that this library is his fork library, and I should continue to use the name of ModernWpf instead of iUWM.
+At first, I wrote this library mainly for myself and the studio's projects, so I casually made the repository public on GitHub, but I didn't expect this repository to be discovered quickly, and now it has a considerable number of stars and usage. I am very happy and proud. However, Whatwhat does not buy it, he thought that this library is his fork library, and I should continue to use the name of ModernWpf instead of iUWM.
:::info My judgments
diff --git a/data/blogs/blog/2024-09-17-reflection-interest-in-opensource-community/index.zh-CN.mdx b/data/blogs/blog/2024-09-17-reflection-interest-in-opensource-community/index.zh-CN.mdx
index bacec20..9ae528d 100644
--- a/data/blogs/blog/2024-09-17-reflection-interest-in-opensource-community/index.zh-CN.mdx
+++ b/data/blogs/blog/2024-09-17-reflection-interest-in-opensource-community/index.zh-CN.mdx
@@ -10,7 +10,7 @@ tags: ["开源", "利益", "回顾与反思", "社区", "iNKORE.UI.WPF.Modern"]
:::note
-**极限省流版 (表达并不准确也不够中立,有时间和心情的话最好看下文):** 开放源代码社区里,我们借鉴了别人的代码 (根据 MIT 许可证完全合法合理吗,除了我们疏忽未将原作者名字进行标注) 做了个衍生作品,我们做得比原作者好(用的人比原作多,收藏数量是原作的十多倍),原作者急眼了,到处去群里爆我们阴阳我们。虽然我们没有按照许可证要求标明原作者,但是我们在事情发生之后第一时间找到了原作者,可是他变本加厉,继续阴阳...
+**极限省流版 (表达并不准确也不够中立,有时间和心情的话最好看下文):** 开放源代码社区里,我们借鉴了别人的代码 (根据 MIT 许可证完全合法合理,除了我们疏忽未将原作者名字进行标注) 做了个衍生作品,我们做得比原作者好(用的人比原作多,收藏数量是原作的十多倍),原作者急眼了,到处去群里爆我们阴阳我们。虽然我们没有按照许可证要求标明原作者,但是我们在事情发生之后第一时间找到了原作者,可是他变本加厉,继续阴阳...
:::
@@ -53,13 +53,13 @@ https://github.com/iNKORE-NET/UI.WPF.Modern
### 前情提要
-我记得当时我才开始我们工作室的第一个桌面应用,决定使用 WPF 来开发,但是微软给 WPF 做的界面啊...真是一言难尽。几番摸索,在 Github 上找到了一个名为 ModernWpf 的项目。它里面的控件都是 Windows 10 风格的,正好此时 Windows 11 已经发布了,我就在想,有没有一个控件库是 Windows 11 风格的呢?于是我就找到了 ModernWpf 的一个分支仓库,这个里面的控件库就是 Windows 11 风格的。
+我记得当时我才开始我们工作室的第一个桌面应用,决定使用 WPF 来开发,但是微软给 WPF 做的界面啊...真是一言难尽。几番摸索,在 GitHub 上找到了一个名为 ModernWpf 的项目。它里面的控件都是 Windows 10 风格的,正好此时 Windows 11 已经发布了,我就在想,有没有一个控件库是 Windows 11 风格的呢?于是我就找到了 ModernWpf 的一个分支仓库,这个里面的控件库就是 Windows 11 风格的。
这个控件库的作者就是这次事件的主要人物之一,我就称他为 Whatwhat 吧。我看了下这个库的许可证,是 MIT 许可证,我就 fork 了这个库,然后开始了我的控件库之旅。在做自己的控件库之前也和原作者 Whatwhat 交流过,他首先想让我加入他的 ModernWpf 项目。Whatwhat 的想法是 "移植 UWP",而我的想法是 "创造 WPF",于是就谈崩了。
在此之后,我就开始了我的控件库之旅,我将这个库命名为 iUWM,这个库的目的是为了让 WPF 开发者能够更加方便地使用 Windows 11 风格的控件。我在这个库里面加入了很多自己的想法,比如说控件的样式,控件的行为等等,比如,我赋予了用户完全掌控窗口标题栏高度和按钮的能力,这些在 Whatwhat 的眼里是不应该有的。
-刚开始我编写此库主要是为了自己和工作室的项目,也就随手把仓库公开在 Github 上,没想到这个仓库很快被人发现,现在已经相当数量的 star 和使用量了。我很开心,也很自豪,但是 Whatwhat 对此并不买账,他认为我这个库是他的分支库,我应该继续使用 ModernWpf 的名字,而不是 iUWM。
+刚开始我编写此库主要是为了自己和工作室的项目,也就随手把仓库公开在 GitHub 上,没想到这个仓库很快被人发现,现在已经相当数量的 star 和使用量了。我很开心,也很自豪,但是 Whatwhat 对此并不买账,他认为我这个库是他的分支库,我应该继续使用 ModernWpf 的名字,而不是 iUWM。
:::info 我的评判
diff --git a/data/blogs/blog/2025-08-20-evidence-based-expose-infringement-of-mcskinn/index.zh-CN.mdx b/data/blogs/blog/2025-08-20-evidence-based-expose-infringement-of-mcskinn/index.zh-CN.mdx
index 0f706fb..0f1cacc 100644
--- a/data/blogs/blog/2025-08-20-evidence-based-expose-infringement-of-mcskinn/index.zh-CN.mdx
+++ b/data/blogs/blog/2025-08-20-evidence-based-expose-infringement-of-mcskinn/index.zh-CN.mdx
@@ -19,7 +19,7 @@ This post is only available in Simplified Chinese, as this incident happened in
:::info
-由于事情发生在中国大陆,聊天截图将以中文展示;此文章中引用的聊天记录图片都为了优化阅读体验而进行了处理,同时也隐去了一些不应当披露的个人信息。虽然本文中直接引用的聊天记录并非可以直接作为证据,我们已将仅经过必要修改的聊天记录 (按照法律与道德对人员的隐私保护要求) 统一存储到了 Github 仓库中,供有需要的读者查阅,你也可以通过查阅它们来更客观,更全面地了解事情经过——理性吃瓜。
+由于事情发生在中国大陆,聊天截图将以中文展示;此文章中引用的聊天记录图片都为了优化阅读体验而进行了处理,同时也隐去了一些不应当披露的个人信息。虽然本文中直接引用的聊天记录并非可以直接作为证据,我们已将仅经过必要修改的聊天记录 (按照法律与道德对人员的隐私保护要求) 统一存储到了 GitHub 仓库中,供有需要的读者查阅,你也可以通过查阅它们来更客观,更全面地了解事情经过——理性吃瓜。
**查看完整的聊天记录存档**:https://github.com/iNKORE-NET/Hallofshame/tree/main/archives/2025-08/QGroup682528253
diff --git a/data/docs/ui-wpf-modern/02.# onboarding/index.en-US.mdx b/data/docs/ui-wpf-modern/02.# onboarding/index.en-US.mdx
index ad39701..18c5a4c 100644
--- a/data/docs/ui-wpf-modern/02.# onboarding/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/02.# onboarding/index.en-US.mdx
@@ -86,7 +86,7 @@ Then you're expected to see this package has been added to your dependencies lis
:::info
-There are a few other libraries appearing when searching. You can learn more about them in our [Github profile](https://github.com/iNKORE-NET) and their repositories.
+There are a few other libraries appearing when searching. You can learn more about them in our [GitHub profile](https://github.com/iNKORE-NET) and their repositories.
:::
diff --git a/data/docs/ui-wpf-modern/02.# onboarding/index.zh-CN.mdx b/data/docs/ui-wpf-modern/02.# onboarding/index.zh-CN.mdx
new file mode 100644
index 0000000..ebf5a3a
--- /dev/null
+++ b/data/docs/ui-wpf-modern/02.# onboarding/index.zh-CN.mdx
@@ -0,0 +1,220 @@
+# 快速开始
+
+在本指南中,我们将引导您完成将 iNKORE.UI.WPF.Modern 库集成到应用程序中的过程,让您为 WPF 项目带来现代化和视觉上引人入胜的用户界面。凭借对 Fluent Design 元素的支持和灵活的自定义选项,iNKORE.UI.WPF.Modern 可以将您的应用程序转变为一个视觉上令人惊艳的体验。
+
+
+## 第 1 步:调整配置
+
+在安装软件包之前,我们建议您对项目设置进行一些调整。在解决方案视图中右键单击项目,然后单击**属性**。
+
+
+
+### 对于 .NET Framework 项目
+
+如果您的 csproj 风格是旧式的,您应该看到这个界面:
+
+
+
+:::info 提醒
+
+我们强烈建议您将 csproj 文件转换为[SDK 风格](https://learn.microsoft.com/zh-cn/dotnet/core/project-sdk/overview),它提供更多功能和更好的体验。有关更多信息,请查看 Microsoft 的文档。
+
+:::
+
+如果您的项目已经升级到 SDK 风格,您应该能够看到这样的界面:
+
+
+
+无论您的 csproj 文件是什么风格,请确保目标框架是 .NET Framework 4.6.2 或更高版本。
+
+如果您使用的是较旧的框架版本,库可能无法正确加载。
+
+### 对于 .NET Core (也包括 6.0 及更高版本) 项目
+
+首先,请确保框架是 .NET 6.0 或更高版本。
+
+
+
+
+
+:::danger 注意!
+
+我们刚刚删除了对 .NET Core 3.1 和 .NET 5.0 的支持,这意味着这些框架与此库的最新版本不兼容。
+
+如果您必须坚持使用这些旧版本,您仍然可以下载完整源代码并自己编译具有旧版本支持的二进制文件。但是,由于对较新 API 的一些引用,此编译可能会失败。
+
+:::
+
+然后让我们关注**目标 OS 版本**选项。我们建议您将其设置为 `10.0.18362.0` 或更高版本以启用主题同步功能。
+
+
+
+:::warning
+
+如果目标版本设置为 10.0,您可能会在输出目录中看到这些文件:
+
+
+
+这是由 .NET SDK 引起的,与我们的任何库都无关。
+
+如果您在意这一点,那么将其设置为 7.0,虽然这会使这两个文件消失,但您的应用将无法跟随系统主题。
+
+:::
+
+
+:::tip
+
+虽然**目标 OS 版本**设置为 10.0,但您可以将**支持的 OS 版本**设置为任何您想要的版本。为了在 .NET 支持的任何 Windows 版本上运行您的应用,最好的选择是将其设置为 `7.0`。
+
+
+
+:::
+
+## 第 2 步:安装软件包
+
+再次右键单击您的项目,然后单击**管理 NuGet 程序包**菜单。
+
+
+
+然后单击**浏览**,在搜索框中输入 `inkore`。我们所有的公开库都会出现在这里。然后选择 `iNKORE.UI.WPF.Modern` 并单击**安装**,再选择 `iNKORE.UI.WPF` 并再次单击安装。
+
+
+
+然后您应该看到此程序包已添加到您的依赖项列表中:
+
+
+
+:::info
+
+搜索时会出现一些其他库。您可以在我们的 [GitHub 主页](https://github.com/iNKORE-NET)及其存储库中了解更多信息。
+
+:::
+
+:::warning 为什么是 **iNKORE.UI.WPF**?
+
+通常,我们使用 `iNKORE.UI.WPF` 作为所有 WPF 库的基础库。它包含在所有 WPF 库之间共享的一些常见实用程序和控件。
+
+如果您在运行时看到此异常,请手动安装 `iNKORE.UI.WPF`:
+
+> **System.Windows.Markup.XamlParseException**: 'Initialization of 'iNKORE.UI.WPF.Modern.ThemeResources' threw an exception.'
+
+> [InnerException]
+> FileNotFoundException: Could not load file or assembly 'iNKORE.UI.WPF, Version=######, Culture=neutral, PublicKeyToken=######'. The system cannot find the file specified.
+
+
+当您安装 iNKORE.UI.WPF.Modern 时,iNKORE.UI.WPF 应该会自动安装。但是,由于某些原因 (可能是 NuGet 内部错误或配置错误) ,它可能不会被安装。
+
+如果您找到了一种方法来确保 `iNKORE.UI.WPF` 自动安装,请告诉我们。
+
+:::
+
+## 第 3 步:添加主题资源
+
+打开根目录中的 `App.xaml` 文件,并添加命名空间声明:
+
+```ini
+xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
+```
+
+然后,在 `Application.Resources` 中,创建一个新的 `ResourceDictionary` 并添加属性 `ResourceDictionary.MergedDictionaries`。
+
+在 `MergedDictionaries` 中,添加新的 `ui:ThemeResources` 和 `ui:XamlControlsResources` 实例。
+
+最后,您的 `App.xaml` 文件应该如下所示:
+
+```xml title="App.xaml"
+
+
+
+
+# highlight-start
+
+
+# highlight-end
+
+
+
+
+
+
+
+```
+
+此时,现代主题已成功添加到项目中。所有控件现在应该都具有现代风格。
+
+
+## 第 4 步:将样式应用到 MainWindow
+
+让我们将现代样式应用到主窗口。转到 `MainWindow.xaml`,首先添加命名空间声明:
+
+```ini
+xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
+```
+
+然后通过应用此附加属性让窗口使用现代样式:
+
+```ini
+ui:WindowHelper.UseModernWindowStyle="True"
+```
+
+:::info
+
+与其他控件不同,由于安全和兼容性原因,窗口无法在不手动设置其样式的情况下全局设置样式。
+
+:::
+
+现在,如果您运行该应用,您可以看到窗口具有现代风格的框架。您还可以使用 `ui:WindowHelper.SystemBackdropType` 属性向窗口添加材质:
+
+```ini
+ui:WindowHelper.SystemBackdropType="Mica"
+```
+
+现在您的 `MainWindow.xaml` 应该如下所示:
+
+```xml title="MainWindow.xaml"
+
+
+
+
+
+
+
+
+
+
+```
+
+现在点击运行按钮,您可以看到一个带有现代按钮的现代窗口。
+
+
+
+## 结论
+
+太好了!您已成功将 Fluent Design 应用到项目中。现在是探索更多内容的时候了!
+
+:::tip
+
+本文的完整源代码可以在此处找到:https://github.com/iNKORE-NET/UI.WPF.Modern/tree/main/samples/StarterKit
+
+:::
diff --git a/data/docs/ui-wpf-modern/03. components/01. basic-input/# button/index.zh-CN.mdx b/data/docs/ui-wpf-modern/03. components/01. basic-input/# button/index.zh-CN.mdx
new file mode 100644
index 0000000..a40dea9
--- /dev/null
+++ b/data/docs/ui-wpf-modern/03. components/01. basic-input/# button/index.zh-CN.mdx
@@ -0,0 +1,137 @@
+---
+description: "一种响应用户输入并引发 Click 事件的控件。"
+---
+
+# Button
+
+Button 允许用户通过一次点击来执行操作并做出选择。它会响应来自鼠标、键盘、触控笔或其他输入设备的输入,并引发 Click 事件。
+
+- **类**: [System.Windows.Controls](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls)[.Button](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.button)
+
+Button 的主要用途是在用户单击它时触发某些操作。实现这一点有两种方式:
+
+- 处理 Click 事件。
+- 将 Command 属性绑定到描述命令逻辑的 ICommand 实现。
+
+
+## 示例
+
+以下示例展示了 Button 控件的常见用法。
+
+### 一个基础 Button
+
+通过使用 Button 类,你可以创建一个 Button。可以使用 Content 属性添加内容,并使用 Click 事件处理其被单击时的逻辑。
+
+```xml
+
+```
+
+```csharp
+private void Button_Click(object sender, RoutedEventArgs e)
+{
+ // 在 Button 被单击时执行操作!
+}
+```
+
+然后你就可以看到一个带文本的普通 Button,并尝试单击它!
+
+
+
+### 带图标的 Button
+
+Button 通常只包含简单的字符串内容,但你可以使用任何对象作为内容。使用以下代码,你会得到一个仅包含图标和工具提示的 Button:
+
+```xml
+
+```
+
+
+
+有关 *ui:FontIcon* 的更多信息,请[点击这里](%BASE_NAME%/components/media/font-icon)
+
+### 带图标和文本的 Button
+
+如果你想同时显示图标和文本,最好的方式是使用 ui:IconAndText 组件。它将图标和文本组合在一起:
+
+```xml
+
+```
+
+
+
+有关 IconAndText 的更多信息,请[点击这里](%BASE_NAME%/components/media/icon-and-text)
+
+如果你不想使用 FontIcon,或者你想完全自定义子组件 (不推荐这样做,因为这可能会增加复杂性并使维护更困难) ,可以尝试以下代码:
+
+```xml
+
+```
+
+### 强调按钮 (Accent Button)
+
+强调按钮属于高强调级别,通过使用层级和填充进行区分。它们包含对你的应用程序最重要的操作。
+
+要为 Button 应用强调样式,需要将 Style 属性设置为 `{StaticResource {x:Static ui:ThemeKeys.AccentButtonStyleKey}}`。
+
+```xml
+
+```
+
+由于强调按钮通常是整个窗口的主要操作,因此最好允许用户按下 Enter 键来触发其点击事件,这可以通过将 IsDefault 属性设置为 `True` 来实现。
+
+完整代码如下所示:
+
+```xml
+
+```
+
+
+
+## 备注
+
+### 层级
+
+Button 控件默认带有层级边框效果。你可以使用 `ui:ElevationBorder` 来自定义其层级效果。
+
+更多信息请参见 [主题 / 层级](%BASE_NAME%/features/theming/elevations)。
+
+### 样式
+
+Button 控件有两个内置样式:
+
+- DefaultButtonStyle:Button 的默认样式,可通过 `ui:ThemeKeys.DefaultButtonStyleKey` 访问。
+
+- AccentButtonStyle:Button 的强调样式,可通过 `ui:ThemeKeys.AccentButtonStyleKey` 访问。
+
+## 另请参阅
+
+### 相关文章
+
+- [组件 / DropDownButton](%BASE_NAME%/components/basic-input/dropdown-button)
+
+- [组件 / ToggleButton](%BASE_NAME%/components/basic-input/toggle-button)
+
+- [组件 / SplitButton](%BASE_NAME%/components/basic-input/split-button)
+
+- [组件 / HyperlinkButton](%BASE_NAME%/components/basic-input/hyperlink-button)
+
+- [组件 / RepeatButton](%BASE_NAME%/components/basic-input/repeat-button)
+
+### Microsoft Learn
+
+- [Button Class (WPF)](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.button)
+
+- [Button Class (WinRT)](https://learn.microsoft.com/zh-cn/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.button)
+
+- [Button - WPF](https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/controls/button)
+
+- [Buttons - Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/controls/buttons)
diff --git a/data/docs/ui-wpf-modern/03. components/01. basic-input/# check-box/index.en-US.mdx b/data/docs/ui-wpf-modern/03. components/01. basic-input/# check-box/index.en-US.mdx
index 67a771d..3daf8ed 100644
--- a/data/docs/ui-wpf-modern/03. components/01. basic-input/# check-box/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/03. components/01. basic-input/# check-box/index.en-US.mdx
@@ -6,7 +6,7 @@ description: "A control that a user can select or clear."
You can use a CheckBox in the user interface (UI) of your application to represent options that a user can select or clear. You can use a single check box or you can group two or more check boxes.
-- **Class**: [System.Windows.Controls](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls)[.CheckBox](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.button)
+- **Class**: [System.Windows.Controls](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls)[.CheckBox](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.checkbox)
## Examples
@@ -96,7 +96,7 @@ If you have multiple options appearing in a list, you can preserve space by usin
### Styles
-There is one built-in style for Button control:
+There is one built-in style for CheckBox control:
- **DefaultCheckBoxStyle**: The default style for CheckBox, you can access it with `ui:ThemeKeys.DefaultCheckBoxStyleKey`.
diff --git a/data/docs/ui-wpf-modern/03. components/01. basic-input/# check-box/index.zh-CN.mdx b/data/docs/ui-wpf-modern/03. components/01. basic-input/# check-box/index.zh-CN.mdx
new file mode 100644
index 0000000..5230da5
--- /dev/null
+++ b/data/docs/ui-wpf-modern/03. components/01. basic-input/# check-box/index.zh-CN.mdx
@@ -0,0 +1,136 @@
+---
+description: "用户可以选中或清除的控件。"
+---
+
+# CheckBox
+
+您可以在应用程序的用户界面 (UI) 中使用 CheckBox 来表示用户可以选中或清除的选项。您可以使用单个 CheckBox,也可以将两个或多个 CheckBox 分组使用。
+
+- **类**: [System.Windows.Controls](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls)[.CheckBox](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.checkbox)
+
+## 示例
+
+以下示例创建一个 CheckBox,并处理 Checked、Unchecked 和 Indeterminate 事件。
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```csharp
+private void HandleCheck(object sender, RoutedEventArgs e)
+{
+ text1.Text = "The CheckBox is checked.";
+}
+
+private void HandleUnchecked(object sender, RoutedEventArgs e)
+{
+ text1.Text = "The CheckBox is unchecked.";
+}
+
+private void HandleThirdState(object sender, RoutedEventArgs e)
+{
+ text1.Text = "The CheckBox is in the indeterminate state.";
+}
+```
+
+Unchecked:
+
+
+
+Checked:
+
+
+
+Indeterminate:
+
+
+
+## 备注
+
+CheckBox 控件继承自 [ToggleButton](%BASE_NAME%/components/basic-input/toggle-button),并且可以具有三种状态:已选中 (selected) 、未选中 (cleared) 和不确定。
+
+CheckBox 是一个 ContentControl,这意味着它可以包含任意类型的单个对象 (例如字符串、图像或面板) 。有关详细信息,请参阅 [ContentControl](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.contentcontrol) 类。
+
+### 这是正确的控件吗?
+
+对于二元的“是/否”选择,请使用单个 CheckBox,例如“记住我?”登录场景或服务条款同意场景。
+
+
+
+对于二元选择,CheckBox 与 [ToggleSwitch](%BASE_NAME%/components/basic-input/toggle-switch) 的主要区别在于,CheckBox 用于状态,ToggleSwitch 用于操作。您可以延迟提交 CheckBox 交互 (例如作为表单提交的一部分) ,而 ToggleSwitch 交互应立即提交。另外,只有 CheckBox 支持多选。
+
+对于用户从一组非互斥选项中选择一个或多个项目的多选场景,请使用**多个 CheckBox**。
+
+当用户可以选择任意组合的选项时,请创建一组 CheckBox。
+
+
+
+当选项可以分组时,您可以使用 Indeterminate 状态的 CheckBox 来表示整个组。当用户选择了组中的部分子项但不是全部子项时,请使用 CheckBox 的Indeterminate 状态。
+
+
+
+CheckBox 和 RadioButton 都允许用户从一组选项中进行选择。CheckBox 允许用户选择多个选项的组合;而 RadioButton 允许用户在互斥选项中做出单一选择。当有多个选项但只能选择其中一个时,请改用 [RadioButton](%BASE_NAME%/components/basic-input/radio-button)。
+
+:::tip
+
+如果列表中有多个选项,您可以使用 CheckBox 而不是开/关 ToggleSwitch 来节省空间。如果只有一个选项,请避免使用 CheckBox,而应使用开/关 ToggleSwitch。
+
+:::
+
+### 样式
+
+CheckBox 控件有一个内置样式:
+
+- **DefaultCheckBoxStyle**:CheckBox 的默认样式,可以通过 `ui:ThemeKeys.DefaultCheckBoxStyleKey` 访问。
+
+### 紧凑尺寸
+
+如果您在紧凑布局中使用 CheckBox,可能会发现即使 CheckBox 没有内容,它也会占用一定空间。这是因为默认样式中设置了 **MinWidth** 属性。
+
+
+
+要解决此问题,只需将 **MinWidth** 属性设置为 `0`,如下所示:
+
+```xml
+
+```
+
+
+
+## 另请参阅
+
+### 相关文章
+
+- [组件 / ToggleButton](%BASE_NAME%/components/basic-input/toggle-button)
+
+- [组件 / ToggleSwitch](%BASE_NAME%/components/basic-input/toggle-switch)
+
+- [组件 / RadioButton](%BASE_NAME%/components/basic-input/radio-button)
+
+### Microsoft Learn
+
+- [CheckBox Class (WPF)](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.checkbox)
+
+- [CheckBox Class (WinRT)](https://learn.microsoft.com/zh-cn/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.checkbox)
+
+- [CheckBox - WPF](https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/controls/checkbox)
+
+- [CheckBox - Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/controls/checkbox)
+
diff --git a/data/docs/ui-wpf-modern/03. components/01. basic-input/# combo-box/index.en-US.mdx b/data/docs/ui-wpf-modern/03. components/01. basic-input/# combo-box/index.en-US.mdx
index c8d5cdb..8a3804c 100644
--- a/data/docs/ui-wpf-modern/03. components/01. basic-input/# combo-box/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/03. components/01. basic-input/# combo-box/index.en-US.mdx
@@ -4,7 +4,7 @@ description: "A drop-down list of items a user can select from."
# ComboBox
-Use a combo box (also known as a drop-down list) to present a list of items that a user can select from. A combo box starts in a compact state and expands to show a list of selectable items. A list box is similar to a combo box, but is not collapsible/does not have a compact state. You can learn more about list boxes at the end of this article.
+Use a ComboBox (also known as a drop-down list) to present a list of items that a user can select from. A ComboBox starts in a compact state and expands to show a list of selectable items. A list box is similar to a ComboBox, but is not collapsible/does not have a compact state. You can learn more about list boxes at the end of this article.
- **Class**: [System.Windows.Controls](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls)[.ComboBox](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.combobox);
@@ -55,16 +55,16 @@ Then you can choose a city from the ComboBox.
Use a drop-down list to let users select a single value from a set of items that can be adequately represented with single lines of text.
-Use a list or grid view instead of a combo box to display items that contain multiple lines of text or images.
+Use a ListView or GridView instead of a ComboBox to display items that contain multiple lines of text or images.
-When there are fewer than five items, consider using radio buttons (if only one item can be selected) or check boxes (if multiple items can be selected).
+When there are fewer than five items, consider using RadioButton (if only one item can be selected) or CheckBox (if multiple items can be selected).
-Use a combo box when the selection items are of secondary importance in the flow of your app. If the default option is recommended for most users in most situations, showing all the items by using a list view might draw more attention to the options than necessary. You can save space and minimize distraction by using a combo box.
+Use a ComboBox when the selection items are of secondary importance in the flow of your app. If the default option is recommended for most users in most situations, showing all the items by using a ListView might draw more attention to the options than necessary. You can save space and minimize distraction by using a ComboBox.
:::tip Recommendations
-Limit the text content of combo box items to a single line.
-Sort items in a combo box in the most logical order. Group together related options and place the most common options at the top. Sort names in alphabetical order, numbers in numerical order, and dates in chronological order.
+Limit the text content of ComboBox items to a single line.
+Sort items in a ComboBox in the most logical order. Group together related options and place the most common options at the top. Sort names in alphabetical order, numbers in numerical order, and dates in chronological order.
:::
@@ -82,11 +82,11 @@ You can use the attached properties from `ui:ComboBox` to customize your ComboBo
The ComboBox control comes with an elevation border effect by default. You can use the `ui:ElevationBorder` to customize its elevation.
-See more at: ____
+See more at: [Theming / Elevations](%BASE_NAME%/features/theming/elevations).
### Styles
-There is one built-in style for Button control:
+There is one built-in style for ComboBox control:
- **DefaultComboBoxStyle**: The default style for ComboBox, you can access it with `ui:ThemeKeys.DefaultComboBoxStyleKey`.
diff --git a/data/docs/ui-wpf-modern/03. components/01. basic-input/# combo-box/index.zh-CN.mdx b/data/docs/ui-wpf-modern/03. components/01. basic-input/# combo-box/index.zh-CN.mdx
new file mode 100644
index 0000000..280dccc
--- /dev/null
+++ b/data/docs/ui-wpf-modern/03. components/01. basic-input/# combo-box/index.zh-CN.mdx
@@ -0,0 +1,116 @@
+---
+description: "一个用户可以从中选择项目的下拉列表。"
+---
+
+# ComboBox
+
+使用组合框 (也称为下拉列表) 呈现用户可以选择的项目列表。组合框以紧凑状态开始,然后展开以显示可选项目的列表。列表框类似于组合框,但不可折叠且没有紧凑状态。您可以在本文末尾了解有关列表框的更多信息。
+
+- **类**: [System.Windows.Controls](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls)[.ComboBox](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.combobox);
+
+## 示例
+
+以下示例创建了一个 ComboBox。该示例通过将 ItemsSource 属性绑定到 VacationSpots 类型的集合对象来填充 ComboBox。该示例还创建了一个 TextBlock,用于显示 ComboBox 的选定项。
+
+```xml
+
+
+
+
+
+
+
+
+```
+
+以下示例定义了前面示例中 ComboBox 绑定到的集合对象。
+
+```csharp
+class VacationSpots : ObservableCollection
+{
+ public VacationSpots ()
+ {
+ Add("Spain");
+ Add("France");
+ Add("Peru");
+ Add("Mexico");
+ Add("Italy");
+ }
+}
+```
+
+然后您可以从 ComboBox 中选择一个城市。
+
+
+
+## 备注
+
+### 这是正确的控件吗?
+
+使用下拉列表允许用户从可以用单行文本充分表示的一组项目中选择单个值。
+
+使用 ListView 或 GridView 而不是 ComboBox 来显示包含多行文本或图像的项目。
+
+当项目少于五个时,考虑使用 RadioButton (如果只能选择一项) 或 CheckBox (如果可以选择多项) 。
+
+当选择项目在您的应用程序流中的重要性不高时,使用 ComboBox。如果在大多数情况下建议使用默认选项,那么使用列表视图显示所有项目可能会比必要的给予选项更多关注。您可以使用 ComboBox 节省空间并最大程度地减少干扰。
+
+:::tip 建议
+
+将 ComboBox 项目的文本内容限制为单行。
+以最合理的顺序对 ComboBox 中的项目进行排序。将相关选项组合在一起,并将最常见的选项放在顶部。按字母顺序对名称排序,按数值顺序对数字排序,按时间顺序对日期排序。
+
+:::
+
+## ItemsControl
+
+ComboBox 允许用户从其中选择一个项目,或者可以选择在控件的文本框中输入新文本。ComboBox 是一个 ItemsControl,这意味着它可以包含任何类型的对象集合 (例如字符串、图像或面板) 。有关更多信息,请参阅 [ItemsControl](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.itemscontrol) 类。
+
+### 扩展属性
+
+您可以使用来自 `ui:ComboBox` 的附加属性来自定义您的 ComboBox。
+
+- **TextBoxStyle**: 获取 ComboBox 可编辑时 ComboBox 中 TextBox 的样式。
+
+### 层级
+
+ComboBox 控件默认带有层级边框效果。您可以使用 `ui:ElevationBorder` 来自定义其层级效果。
+
+更多信息请参见 [主题 / 层级](%BASE_NAME%/features/theming/elevations)。
+
+### 样式
+
+为 ComboBox 控件内置了一种样式:
+
+- **DefaultComboBoxStyle**: ComboBox 的默认样式,您可以使用 `ui:ThemeKeys.DefaultComboBoxStyleKey` 访问它。
+
+## 另请参阅
+
+### 相关文章
+
+- [组件 / DropDownButton](./dropdown-button)
+
+- [组件 / ToggleButton](./toggle-button)
+
+- [组件 / SplitButton](./split-button)
+
+- [组件 / HyperlinkButton](./hyperlink-button)
+
+- [组件 / RepeatButton](./repeat-button)
+
+### Microsoft Learn
+
+- [ComboBox Class (WPF)](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.combobox)
+
+- [ComboBox Class (WinRT)](https://learn.microsoft.com/zh-cn/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.combobox)
+
+- [ComboBox - WPF](https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/controls/combobox)
+
+- [Combo box and list box - Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/controls/combo-box)
+
diff --git a/data/docs/ui-wpf-modern/03. components/01. basic-input/# dropdown-button/index.en-US.mdx b/data/docs/ui-wpf-modern/03. components/01. basic-input/# dropdown-button/index.en-US.mdx
index e5db901..050f267 100644
--- a/data/docs/ui-wpf-modern/03. components/01. basic-input/# dropdown-button/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/03. components/01. basic-input/# dropdown-button/index.en-US.mdx
@@ -8,7 +8,7 @@ A DropDownButton is a button that shows a chevron as a visual indicator that it
- **Class**: [iNKORE.UI.WPF.Modern.Controls.DropDownButton](%BASE_NAME%/definitions/controls/dropdown-button)
-The drop down button inherits the Click event, but you typically don't use it. Instead, you use the Flyout property to attach a flyout and invoke actions by using menu options in the flyout. The flyout opens automatically when the button is clicked. Be sure to specify the Placement property of your flyout to ensure the desired placement in relation to the button. The default placement algorithm might not produce the intended placement in all situations. For more info about flyouts, see **Flyout** and **MenuFlyout**.
+The DropDownButton inherits the Click event, but you typically don't use it. Instead, you use the Flyout property to attach a flyout and invoke actions by using menu options in the flyout. The flyout opens automatically when the button is clicked. Be sure to specify the Placement property of your flyout to ensure the desired placement in relation to the button. The default placement algorithm might not produce the intended placement in all situations. For more info about flyouts, see **Flyout** and **MenuFlyout**.
## Examples
@@ -30,7 +30,7 @@ This code makes a DropDownButton that has a flyout which opens when the button i
### With MenuFlyout
-This example shows how to create a drop down button with a MenuFlyout that contains commands for paragraph alignment in a TextBox.
+This example shows how to create a DropDownButton with a MenuFlyout that contains commands for paragraph alignment in a TextBox.
```xml
@@ -114,7 +114,7 @@ There is one built-in style for DropDownButton control. Since this is a control
- [Components / MenuFlyout](../menu-and-toolbars/menu-flyout)
-- Components / [SplitButton](./split-button)
+- [Components / SplitButton](./split-button)
### Microsoft Learn
diff --git a/data/docs/ui-wpf-modern/03. components/01. basic-input/# dropdown-button/index.zh-CN.mdx b/data/docs/ui-wpf-modern/03. components/01. basic-input/# dropdown-button/index.zh-CN.mdx
new file mode 100644
index 0000000..a08b14a
--- /dev/null
+++ b/data/docs/ui-wpf-modern/03. components/01. basic-input/# dropdown-button/index.zh-CN.mdx
@@ -0,0 +1,123 @@
+---
+description: "一个点击时显示选项浮出菜单的按钮。"
+---
+
+# DropDownButton
+
+DropDownButton 是一个按钮,显示一个 Chevron 图标作为视觉指示器,表示它有一个附加的浮出菜单,其中包含更多选项。它具有与标准 Button 控件加浮出菜单相同的行为;只是外观不同。
+
+- **类**: [iNKORE.UI.WPF.Modern.Controls.DropDownButton](%BASE_NAME%/definitions/controls/dropdown-button)
+
+DropDownButton 继承了 Click 事件,但您通常不会使用它。相反,您应使用 Flyout 属性来附加浮出菜单,并通过浮出菜单中的菜单选项来调用操作。当按下按钮时,浮出菜单会自动打开。请确保指定浮出菜单的 Placement 属性,以确保相对于按钮的所需位置。默认的放置算法可能不会在所有情况下产生预期的放置。有关浮出菜单的更多信息,请参阅**浮出菜单**和**菜单浮出菜单**。
+
+## 示例
+
+### 基本 DropDownButton
+
+此代码创建一个 DropDownButton,其浮出菜单在按下按钮时打开:
+
+```xml
+
+
+
+
+
+
+
+```
+
+
+
+### 使用 MenuFlyout
+
+此示例演示如何创建具有 MenuFlyout 的下拉按钮,该 MenuFlyout 包含用于 TextBox 中段落对齐的命令。
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+```csharp
+private void Button_SaveScreenshot_Click(object sender, RoutedEventArgs e)
+{
+ RenderTargetBitmap targetBitmap = new RenderTargetBitmap(
+ (int)Viewbox_Viewport.ActualWidth,
+ (int)Viewbox_Viewport.ActualHeight,
+ 96d,
+ 96d,
+ PixelFormats.Default);
+
+ targetBitmap.Render(Viewbox_Viewport);
+
+
+ if (saveFileDialog.ShowDialog() == true)
+ {
+ BmpBitmapEncoder encoder = new BmpBitmapEncoder();
+ encoder.Frames.Add(BitmapFrame.Create(targetBitmap));
+ // 将文件保存到磁盘
+ using (FileStream fs = File.Open(saveFileDialog.FileName, FileMode.OpenOrCreate))
+ {
+ encoder.Save(fs);
+ }
+ }
+}
+```
+
+## 备注
+
+### Elevation
+
+即将推出
+
+### Flyout Service
+
+即将推出
+
+### 样式
+
+DropDownButton 控件有一个内置样式。由于这是来自 `iNKORE.UI.WPF.Modern.Controls.dll` 的直接控件,默认样式键为 `null`,您可以使用 `{x:Null}` 来应用默认样式。
+
+## 另请参阅
+
+### 相关文章
+
+- [定义 / DropDownButton Class](%BASE_NAME%/definitions/controls/dropdown-button)
+
+- [组件 / AppBarButton](../menu-and-toolbars/appbar-button)
+
+- [组件 / Flyout](../dialogs/flyout)
+
+- [组件 / MenuFlyout](../menu-and-toolbars/menu-flyout)
+
+- [组件 / SplitButton](./split-button)
+
+### Microsoft Learn
+
+- [DropDownButton class (WinRT)](https://learn.microsoft.com/zh-cn/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.dropdownbutton)
+
+- [Buttons # Drop down button - Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/controls/buttons#example---drop-down-button)
diff --git a/data/docs/ui-wpf-modern/03. components/01. basic-input/# hyperlink-button/index.en-US.mdx b/data/docs/ui-wpf-modern/03. components/01. basic-input/# hyperlink-button/index.en-US.mdx
index 6052169..4c2f48c 100644
--- a/data/docs/ui-wpf-modern/03. components/01. basic-input/# hyperlink-button/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/03. components/01. basic-input/# hyperlink-button/index.en-US.mdx
@@ -17,7 +17,7 @@ A **HyperlinkButton** looks like hyperlink text, but works like a button. You ca
Handle the **Click** event **(Recommended)**. This works just like the **Click** event of a standard **Button**, and can be used to navigate within your app.
```xml
-
+
```
```csharp
@@ -43,7 +43,7 @@ Pay attention to **RaiseHyperlinkClicks** property! It will be introduced in the
Set the **NavigateUri** property. When a user clicks it, it will automatically open the URI in the default browser.
```xml
-
+
```
## Remarks
@@ -71,7 +71,7 @@ When **RaiseHyperlinkClicks** is set to `false`, NavigateUri will be ignored and
- Only use hyperlinks for navigation; don't use them for other actions.
- Use the Body style from the type ramp for text-based hyperlinks. Read about fonts and the Windows type ramp.
- Keep discrete hyperlinks far enough apart so that the user can differentiate between them and has an easy time selecting each one.
-Add tooltips to hyperlinks that indicate to where the user will be directed. If the user will be directed to an external site, include the top-level domain name inside the tooltip, and style the text with a secondary font color.
+- Add tooltips to hyperlinks that indicate to where the user will be directed. If the user will be directed to an external site, include the top-level domain name inside the tooltip, and style the text with a secondary font color.
:::
diff --git a/data/docs/ui-wpf-modern/03. components/01. basic-input/# hyperlink-button/index.zh-CN.mdx b/data/docs/ui-wpf-modern/03. components/01. basic-input/# hyperlink-button/index.zh-CN.mdx
new file mode 100644
index 0000000..05e463e
--- /dev/null
+++ b/data/docs/ui-wpf-modern/03. components/01. basic-input/# hyperlink-button/index.zh-CN.mdx
@@ -0,0 +1,97 @@
+---
+description: "一个看起来像超链接文本的按钮,可以导航到 URI 或处理 Click 事件。"
+---
+
+# HyperlinkButton
+
+HyperlinkButton 显示为文本超链接。当用户点击它时,它会在默认浏览器中打开您在 NavigateUri 属性中指定的页面。或者您可以处理其 Click 事件,通常用于在应用程序内导航。
+
+- **类**: [iNKORE.UI.WPF.Modern.Controls.HyperlinkButton](%BASE_NAME%/definitions/controls/hyperlink-button)
+
+## 示例
+
+**HyperlinkButton** 看起来像超链接文本,但工作方式像按钮。您可以通过两种方式使用它:
+
+### 使用 Click 事件
+
+处理 **Click** 事件 **(推荐)**。这与标准 **Button** 的 **Click** 事件完全相同,可用于在应用程序内导航。
+
+```xml
+
+```
+
+```csharp
+private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
+{
+ Process.Start(new ProcessStartInfo("https://inkore.net/")
+ {
+ UseShellExecute = true
+ });
+}
+```
+
+
+
+:::warning
+
+注意 **RaiseHyperlinkClicks** 属性!它将在以下部分中介绍。
+
+:::
+
+### 使用 NavigateUri 属性
+
+设置 **NavigateUri** 属性。当用户点击它时,它会自动在默认浏览器中打开 URI。
+
+```xml
+
+```
+
+## 备注
+
+### 这是正确的控件吗?
+
+当您需要按下时做出响应并将用户导航到有关所按下文本的更多信息时,使用超链接。
+
+根据您的需要选择合适的超链接类型:
+
+- 使用文本控件内的内联 [Hyperlink](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.documents.hyperlink) 文本元素。Hyperlink 元素与其他文本元素一起流动,您可以在任何 InlineCollection 中使用它。如果您需要自动文本换行且不一定需要大的点击目标,请使用文本超链接。超链接文本可能很小且难以定位,特别是对于触摸。
+
+- 对于独立超链接,使用 HyperlinkButton。HyperlinkButton 是一个专业化的 Button 控件,您可以在任何使用 Button 的地方使用它。
+
+- 使用带有 Image 作为内容的 HyperlinkButton 以创建可点击的图像。
+
+### RaiseHyperlinkClicks 属性
+
+由于 WPF 的内部设计,点击按钮一次时 Click 事件会被触发两次。为了避免这种情况,如果您使用 **Click** 事件而不是 **NavigateUri** 属性,需要将 **RaiseHyperlinkClicks** 属性设置为 `false`。
+
+当 **RaiseHyperlinkClicks** 设置为 `false` 时,NavigateUri 将被忽略并不会触发。
+
+:::tip 建议
+
+- 仅将超链接用于导航;不要将其用于其他操作。
+- 对于基于文本的超链接,使用类型坡道中的 Body 样式。阅读有关字体和 Windows 类型坡道的信息。
+- 保持离散超链接之间的距离足够远,以便用户可以区分它们并轻松选择每一个。
+- 为超链接添加工具提示,指示用户将被导向的位置。如果用户将被导向外部网站,请在工具提示中包含顶级域名,并使用辅助字体颜色设置文本样式。
+
+:::
+
+### 样式
+
+HyperlinkButton 控件有一个内置样式。由于这是来自 `iNKORE.UI.WPF.Modern.Controls.dll` 的直接控件,默认样式键是 `null`,您可以使用 `{x:Null}` 来应用默认样式。
+
+## 另请参阅
+
+### 相关文章
+
+- [定义 / HyperlinkButton Class](%BASE_NAME%/definitions/controls/hyperlink-button)
+
+- [组件 / Button](./button)
+
+### Microsoft Learn
+
+- [HyperlinkButton class (WinRT)](https://learn.microsoft.com/zh-cn/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.hyperlinkbutton)
+
+- [Hyperlink class (WPF)](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.documents.hyperlink)
+
+- [Hyperlinks - Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/controls/hyperlinks#create-a-hyperlinkbutton)
+
diff --git a/data/docs/ui-wpf-modern/03. components/01. basic-input/# toggle-switch/index.en-US.mdx b/data/docs/ui-wpf-modern/03. components/01. basic-input/# toggle-switch/index.en-US.mdx
index ffaa549..cd93c28 100644
--- a/data/docs/ui-wpf-modern/03. components/01. basic-input/# toggle-switch/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/03. components/01. basic-input/# toggle-switch/index.en-US.mdx
@@ -54,10 +54,6 @@ Use a toggle switch for binary operations that take effect right after the user
### Styles
-There is one built-in style for Button control:
-
-- **DefaultCheckBoxStyle**: The default style for CheckBox, you can access it with `ui:ThemeKeys.DefaultCheckBoxStyleKey`.
-
Think of the toggle switch as a physical power switch for a device: you flip it on or off when you want to enable or disable the action performed by the device.
To make the toggle switch easy to understand, label it with one or two words, preferably nouns, that describe the functionality it controls. For example, "WiFi" or "Kitchen lights."
@@ -88,7 +84,7 @@ For some actions, either a toggle switch or a check box might work. To decide wh
### Compact Sizing
-If you are using ToggleSwitch in a compact layout, you might find out that even if the check box has no content, it takes an amount of space. This is because the **MinWidth** property is set in the default style.
+If you are using ToggleSwitch in a compact layout, you might find out that even if the toggle switch has no content, it takes an amount of space. This is because the **MinWidth** property is set in the default style.

diff --git a/data/docs/ui-wpf-modern/03. components/01. basic-input/# toggle-switch/index.zh-CN.mdx b/data/docs/ui-wpf-modern/03. components/01. basic-input/# toggle-switch/index.zh-CN.mdx
new file mode 100644
index 0000000..a6b1755
--- /dev/null
+++ b/data/docs/ui-wpf-modern/03. components/01. basic-input/# toggle-switch/index.zh-CN.mdx
@@ -0,0 +1,115 @@
+---
+description: "一个可以在 2 种状态之间切换的开关。"
+---
+
+# ToggleSwitch
+
+使用 ToggleSwitch 控件向用户呈现恰好两个相互排斥的选项 (如开/关) ,选择一个选项会立即提交。ToggleSwitch 应该有一个标签。
+
+- **类**: [iNKORE.UI.WPF.Modern.Controls](..)[.ToggleSwitch](.)
+
+## 示例
+
+以下是如何创建一个简单的 ToggleSwitch。此 XAML 创建一个 ToggleSwitch。
+
+```xml
+
+
+```
+
+
+
+然后,您可以添加一个标头来告诉用户此 ToggleSwitch 的作用,它将在控件上方的区域中显示。
+
+ToggleSwitch 可以处于打开或关闭状态。使用 IsOn 属性来确定 ToggleSwitch 的状态。当 ToggleSwitch 用于控制另一个二进制属性的状态时,您可以使用如下所示的绑定。
+
+在其他情况下,您可以处理 Toggled 事件来响应状态的更改。
+
+```xml
+
+
+
+
+```
+
+```csharp
+private void ToggleSwitch_MainLight_Toggled(object sender, RoutedEventArgs e)
+{
+ TextBlock_MainLightStatus.Text = ToggleSwitch_MainLight.IsOn
+ ? "The main light is turned on"
+ : "The main light is turned off";
+}
+```
+
+
+
+## 备注
+
+### 这是正确的控件吗?
+
+对于用户点击切换后立即生效的二元操作,请使用 ToggleSwitch。
+
+
+
+
+### 样式
+
+将 ToggleSwitch 想象为设备的物理电源开关:当您想启用或禁用设备执行的操作时,您将其打开或关闭。
+
+为了使 ToggleSwitch 易于理解,用一或两个词 (最好是名词) 标记它,以描述它控制的功能。例如,"WiFi" 或 "厨房灯"。
+
+### 在 ToggleSwitch 和 CheckBox 之间选择
+
+对于某些操作,ToggleSwitch 或 CheckBox 可能都适用。为了决定哪个控件更好,请遵循以下提示:
+
+- 对于二元设置,当用户更改后立即生效时,使用 ToggleSwitch。
+
+ 
+
+ 在此示例中,使用 ToggleSwitch 可以清楚地看到厨房灯已设置为 "打开"。但对于 CheckBox,用户需要思考灯现在是否亮着,或者他们是否需要勾选框来打开灯。
+
+- 对于可选 ("锦上添花") 项目,使用 CheckBox。
+
+- 当用户必须执行额外步骤才能使更改生效时,使用 CheckBox。例如,如果用户必须单击 "提交" 或 "下一步" 按钮来应用更改,请使用 CheckBox。
+
+- 当用户可以选择与单个设置或功能相关的多个项目时,使用 CheckBox。
+
+:::tip 建议
+
+- 尽可能使用默认的 On 和 Off 标签;仅在必要时才替换它们以使 ToggleSwitch 有意义。如果替换它们,使用单个单词更准确地描述切换。通常,如果 "On" 和 "Off" 这两个词不能描述与 ToggleSwitch 相关的操作,您可能需要使用不同的控件。
+
+- 避免替换 On 和 Off 标签,除非您必须这样做;除非情况要求自定义标签,否则坚持使用默认标签。
+
+:::
+
+### 紧凑尺寸
+
+如果您在紧凑布局中使用 ToggleSwitch,您可能会发现即使 ToggleSwitch 没有内容,它也会占用一些空间。这是因为在默认样式中设置了 **MinWidth** 属性。
+
+
+
+要解决此问题,您可以简单地将 **MinWidth** 属性设置为 `0`,如下所示:
+
+```xml
+
+```
+
+
+
+## 另请参阅
+
+### 相关文章
+
+- [定义 / ToggleSwitch Class](%BASE_NAME%/definitions/controls/toggle-switch)
+
+- [组件 / CheckBox](./check-box)
+
+- [组件 / ToggleButton](./toggle-button)
+
+- [组件 / RadioButton](./radio-button)
+
+### Microsoft Learn
+
+- [Guidelines for toggle switch](https://learn.microsoft.com/zh-cn/windows/apps/design/controls/toggles)
+
+- [ToggleSwitch Class (WinRT)](https://learn.microsoft.com/zh-cn/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.toggleswitch)
\ No newline at end of file
diff --git a/data/docs/ui-wpf-modern/03. components/04. dialogs/# window/index.en-US.mdx b/data/docs/ui-wpf-modern/03. components/04. dialogs/# window/index.en-US.mdx
index dd9dc4d..5429310 100644
--- a/data/docs/ui-wpf-modern/03. components/04. dialogs/# window/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/03. components/04. dialogs/# window/index.en-US.mdx
@@ -6,9 +6,9 @@ description: "Provides the ability to create, configure, show, and manage the li
The Window class in represents a window in a Windows application. It provides a rich set of features to manage and interact with the window, such as handling its content, appearance, and behavior. This document covers the essential aspects of the Window class, including its properties, methods, and events.
-- **Class**: [System.Windows](https://learn.microsoft.com/en-us/dotnet/api/system.windows)[.Window](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.button)
+- **Class**: [System.Windows](https://learn.microsoft.com/en-us/dotnet/api/system.windows)[.Window](https://learn.microsoft.com/en-us/dotnet/api/system.windows.window)
-- **Inheritance**: [Object](https://learn.microsoft.com/en-us/dotnet/api/system.object) → (...) → [Control](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.control) → [ContentControl](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.contentcontrol) → [Window](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.window)
+- **Inheritance**: [Object](https://learn.microsoft.com/en-us/dotnet/api/system.object) → (...) → [Control](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.control) → [ContentControl](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.contentcontrol) → [Window](https://learn.microsoft.com/en-us/dotnet/api/system.windows.window)
## Examples
@@ -55,13 +55,13 @@ The window is always using the default style and native frames unless you apply
### System backdrops
-Since Windows 10, there are a few system-level backdrops that can be applied to the window. You can use **ui:WindowHelper.SystemBackdrop** property to apply the backdrop. For example, you can apply the mica effect with the following code:
+Since Windows 10, there are a few system-level backdrops that can be applied to the window. You can use **ui:WindowHelper.SystemBackdropType** property to apply the backdrop. For example, you can apply the Mica effect with the following code:
```ini
ui:WindowHelper.SystemBackdropType="Mica"
```
-
+
### Back button in title bar
@@ -122,7 +122,7 @@ public partial class MainWindow : Window
}
```
-When clicking the back button, you may see the expected message box coming up. You can replace the message box with your own logic to navigate back to the previous window or page.
+When clicking the back button, you may see the expected MessageBox coming up. You can replace the MessageBox with your own logic to navigate back to the previous window or page.

@@ -160,7 +160,7 @@ For a better solution, you can turn off the exception breaking in the **Exceptio

-Or you can simply UNcheck **Break when this exception type is thrown** or CHECK **(Except when throw from) iNKORE.UI.WPF.Modern.dll** when this exception appears, this will also ignore the exception.
+Or you can simply UNCHECK **Break when this exception type is thrown** or CHECK **(Except when throw from) iNKORE.UI.WPF.Modern.dll** when this exception appears, this will also ignore the exception.

@@ -174,19 +174,13 @@ Use the following classes to customize the window control along with the title b
## See also
-### Microsoft Learn
-
-- [Window Class (WPF)](https://learn.microsoft.com/en-us/dotnet/api/system.windows.window)
-
-### Related controls
+### Related articles
-- [Flyout](./flyout)
+- [Components / Flyout](./flyout)
-- [ContentDialog](./content-dialog)
+- [Components / ContentDialog](./content-dialog)
-- [MessageBox](./message-box)
-
-### Related articles
+- [Components / MessageBox](./message-box)
- [Definitions / WindowHelper](%BASE_NAME%/definitions/controls/helpers/window-helper)
@@ -195,3 +189,7 @@ Use the following classes to customize the window control along with the title b
- [Definitions / WindowCornerStyle](%BASE_NAME%/definitions/helpers/styles/window-corner-style)
- [Definitions / BackdropType](%BASE_NAME%/definitions/helpers/styles/backdrop-type)
+
+### Microsoft Learn
+
+- [Window Class (WPF)](https://learn.microsoft.com/en-us/dotnet/api/system.windows.window)
diff --git a/data/docs/ui-wpf-modern/03. components/04. dialogs/# window/index.zh-CN.mdx b/data/docs/ui-wpf-modern/03. components/04. dialogs/# window/index.zh-CN.mdx
new file mode 100644
index 0000000..baeb760
--- /dev/null
+++ b/data/docs/ui-wpf-modern/03. components/04. dialogs/# window/index.zh-CN.mdx
@@ -0,0 +1,196 @@
+---
+description: "提供了创建、配置、显示并管理窗口和对话框的生命周期的能力。"
+---
+
+# Window
+
+Window 类代表 Windows 应用程序中的一个窗口。它提供了一套丰富的功能来管理和与窗口互动,例如处理其内容、外观和行为。本文档涵盖了 Window 类的基本方面,及其属性、方法和事件。
+
+- **类**: [System.Windows](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows)[.Window](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.window)
+
+- **继承**: [Object](https://learn.microsoft.com/zh-cn/dotnet/api/system.object) → (...) → [Control](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.control) → [ContentControl](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.contentcontrol) → [Window](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.window)
+
+## 示例
+
+### 创建一个基本窗口
+
+您可以使用 Window 类创建一个基本窗口。默认情况下,当您使用 Visual Studio 创建 WPF 项目时,有一个主窗口称为 `MainWindow.xaml`。多数情况下我们将此窗口用作应用程序的主窗口。您也可以按以下步骤向项目添加更多窗口。
+
+首先,在解决方案资源管理器中右键单击项目,选择 **添加** > **新项目**,然后从列表中选择“Window (WPF)”。将新窗口命名为 `MyWindow.xaml`。
+
+
+
+然后,您可以通过创建它的实例并调用 `Show` 方法来打开新窗口。以下是如何打开新窗口的示例:
+
+```csharp
+var myWindow = new MyWindow();
+myWindow.Show();
+```
+
+### 应用现代样式
+
+窗口总是使用默认样式和原生框架,除非您手动应用现代样式。通过 **ui:WindowHelper.UseModernWindowStyle** 属性,您可以轻松地为窗口应用现代样式,如下所示:
+
+```xml title="MainWindow.xaml"
+
+
+
+
+
+
+```
+
+
+
+### 窗口材质
+
+自 Windows 10 以来,有一些系统级窗口材质可以应用于窗口。您可以使用 **ui:WindowHelper.SystemBackdropType** 属性来应用材质。例如,您可以使用以下代码应用 Mica 效果:
+
+```ini
+ui:WindowHelper.SystemBackdropType="Mica"
+```
+
+
+
+### 标题栏中的返回按钮
+
+您可以使用 **ui:TitleBar.IsBackButtonVisible** 和 **ui:TitleBar.IsBackEnabled** 属性来显示和启用标题栏中的返回按钮。返回按钮很有用,当您想导航回到上一个窗口或页面时。
+
+首先,确保在窗口中启用了返回按钮功能:
+
+```ini
+ui:TitleBar.IsBackButtonVisible="True"
+ui:TitleBar.IsBackEnabled="True"
+```
+
+然后当您运行时,您可能会看到标题栏中有一个返回按钮。接下来,您可以使用 **ui:TitleBar.BackButtonCommand** 处理返回按钮的点击事件。有关命令的更多信息,请 [点击此处](https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/advanced/commanding-overview)。
+
+完整的代码应该像这样:
+
+```xml title="MainWindow.xaml"
+
+
+
+
+
+
+```
+
+```csharp title="MainWindow.xaml.cs"
+public partial class MainWindow : Window
+{
+ public MainWindow()
+ {
+ InitializeComponent();
+# highlight-next-line
+ this.CommandBindings.Add(new CommandBinding(BackCommand, BackCommand_Executed));
+ }
+
+# highlight-next-line
+ public static readonly RoutedUICommand BackCommand = new RoutedUICommand("Back button clicked", "Back", typeof(MainWindow));
+
+ private void BackCommand_Executed(object sender, ExecutedRoutedEventArgs e)
+ {
+ // 当点击返回按钮时做点什么
+ MessageBox.Show("Back button is clicked!");
+ }
+}
+```
+
+
+当点击返回按钮时,您可能会看到预期的 MessageBox 弹出来。您可以使用您自己的逻辑来替换 MessageBox,以导航回到上一个窗口或页面。
+
+
+
+您也可以在 **ui:TitleBar** 类中使用其他包含 "Back" 或 "BackButton" 通配符的属性来对返回按钮进行更多自定义。
+
+## 备注
+
+### 管理属性
+
+为了提供最佳的外观和体验,我们需要接管窗口的 WindowChrome 并对其进行必要的调整。因此,在应用现代样式后,您不应再修改窗口的 WindowChrome;出于同样的原因,也不应修改以下属性:
+
+- WindowChrome.WindowChrome
+
+- FrameworkElement.Style
+
+:::danger 永远不要直接修改它们
+
+如果您修改了上述属性,现代样式和窗口材质可能会损坏,窗口可能永远不会是预期的样子或甚至会崩溃。
+
+:::
+
+### 修复窗口的最大化行为
+
+由于我们完全自定义了窗口以应用现代样式,窗口的默认最大化行为可能不会按预期工作。但不必担心,我们有一种方法来解决此问题,使窗口按预期最大化。但是,此修复可能会产生下列异常:
+
+> **托管调试助手**: 对 PInvoke 函数 'iNKORE.UI.WPF.Modern!iNKORE.UI.WPF.Modern.Controls.Primitives.MaximizedWindowFixer::GetWindowPlacement' 的调用导致堆栈不对称. 原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
+
+此异常是**无害的,可以忽略**。如果您想消除此异常,您可以将此属性设置为 **False** (不推荐,因为它会破坏最大化功能) 。
+
+```xml
+ui:WindowHelper.FixMaximizedWindow="False"
+```
+
+为了获得更好的解决方案,您可以在 Visual Studio 中的 **异常设置** 窗口中关闭 PInvoke 异常的中断:
+
+
+
+或者当此异常出现时,您可以简单地取消勾选 **Break when this exception type is thrown** 或勾选 **(Except when throw from) iNKORE.UI.WPF.Modern.dll**,这也会忽略此异常。
+
+
+
+### 自定义
+
+使用以下类来自定义窗口控件及其标题栏:
+
+- [WindowHelper](%BASE_NAME%/definitions/controls/helpers/window-helper)
+
+- [TitleBar](%BASE_NAME%/definitions/controls/primitives/titlebar)
+
+## 另请参阅
+
+### 相关文章
+
+- [组件 / Flyout](./flyout)
+
+- [组件 / ContentDialog](./content-dialog)
+
+- [组件 / MessageBox](./message-box)
+
+- [定义 / WindowHelper](%BASE_NAME%/definitions/controls/helpers/window-helper)
+
+- [定义 / TitleBar](%BASE_NAME%/definitions/controls/primitives/titlebar)
+
+- [定义 / WindowCornerStyle](%BASE_NAME%/definitions/helpers/styles/window-corner-style)
+
+- [定义 / BackdropType](%BASE_NAME%/definitions/helpers/styles/backdrop-type)
+
+### Microsoft Learn
+
+- [Window Class (WPF)](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.window)
diff --git a/data/docs/ui-wpf-modern/03. components/06. media/# font-icon/index.en-US.mdx b/data/docs/ui-wpf-modern/03. components/06. media/# font-icon/index.en-US.mdx
index b6bd6fc..9b439ee 100644
--- a/data/docs/ui-wpf-modern/03. components/06. media/# font-icon/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/03. components/06. media/# font-icon/index.en-US.mdx
@@ -169,28 +169,28 @@ If you're using the pre-bundled icon sets from Microsoft, please pay attention t
## See also
-### Microsoft Learn
+### Related articles
-- [Segoe Fluent Icons - Windows apps](https://learn.microsoft.com/en-us/windows/apps/design/style/segoe-fluent-icons-font)
+- [Components / ImageIcon](./image-icon)
-- [Segoe MDL2 Assets icons - Windows apps](https://learn.microsoft.com/en-us/windows/apps/design/style/segoe-ui-symbol-font)
+- [Components / SymbolIcon](./symbol-icon)
-- [Design toolkits and samples for Windows apps](https://learn.microsoft.com/en-us/windows/apps/design/downloads#fonts)
+- [Components / PathIcon](./path-icon)
-- [Iconography in Windows 11](https://learn.microsoft.com/en-us/windows/apps/design/signature-experiences/iconography)
+- [Components / IconAndText](./icon-and-text)
-- [FontIcon Class (WinRT)](https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.fonticon)
+- [Components / Button](../basic-input/button)
-### Related controls
+- [Components / AppBarButton](../menu-and-toolbars/appbar-button)
-- [ImageIcon](./image-icon)
+### Microsoft Learn
-- [SymbolIcon](./symbol-icon)
+- [Segoe Fluent Icons - Windows apps](https://learn.microsoft.com/en-us/windows/apps/design/style/segoe-fluent-icons-font)
-- [PathIcon](./path-icon)
+- [Segoe MDL2 Assets icons - Windows apps](https://learn.microsoft.com/en-us/windows/apps/design/style/segoe-ui-symbol-font)
-- [IconAndText](./icon-and-text)
+- [Design toolkits and samples for Windows apps](https://learn.microsoft.com/en-us/windows/apps/design/downloads#fonts)
-- [Button](../basic-input/button)
+- [Iconography in Windows 11](https://learn.microsoft.com/en-us/windows/apps/design/signature-experiences/iconography)
-- [AppBarButton](../menu-and-toolbars/appbar-button)
\ No newline at end of file
+- [FontIcon Class (WinRT)](https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.fonticon)
diff --git a/data/docs/ui-wpf-modern/03. components/06. media/# font-icon/index.zh-CN.mdx b/data/docs/ui-wpf-modern/03. components/06. media/# font-icon/index.zh-CN.mdx
new file mode 100644
index 0000000..f236ebf
--- /dev/null
+++ b/data/docs/ui-wpf-modern/03. components/06. media/# font-icon/index.zh-CN.mdx
@@ -0,0 +1,196 @@
+---
+description: "表示一个使用指定字体字形的图标。"
+---
+
+# FontIcon
+
+FontIcon 是一个用于显示指定字体中图标字形的控件。它是 ImageIcon 的轻量替代方案,适用于多种场景下的图标显示。当您的应用需要展示大量图标时,FontIcon 是非常合适的选择。
+
+- **类**: [iNKORE.UI.WPF.Modern.Controls](..)[.FontIcon](.)
+
+- **继承**: [Object](https://learn.microsoft.com/zh-cn/dotnet/api/system.object) → (...) → [FrameworkElement](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.frameworkelement) → [IconElement](.) → [FontIcon](.)
+
+## 示例
+
+### 使用图标集中的图标
+
+如果存在可用图标集,您可以使用 Icon 属性将图标数据传给组件:
+
+```xml
+
+```
+
+
+
+在 `iNKORE.UI.WPF.Modern.Common.IconKeys` 命名空间下,提供了几个由 Microsoft 制作且符合 Fluent Design 规范的图标集:
+
+- `SegoeFluentIcons`:来自 Microsoft 的 [Segoe Fluent Icons Family](https://learn.microsoft.com/zh-cn/windows/apps/design/style/segoe-fluent-icons-font);
+
+- `FluentSystemIcons`:来自 Microsoft 的 [Fluent System Icons Family](https://github.com/microsoft/fluentui-system-icons)。
+
+您也可以通过创建静态 `iNKORE.UI.WPF.Modern.Common.IconKeys.FontIconData` 实例来构建自己的图标集,并通过 **x:Static** 传入 XAML。更多细节请 [点击这里](COMING_SOON)。
+
+:::danger IMPORTANT
+
+**Segoe Fluent Icons** 属于 Microsoft 的 Segoe UI 字体家族。这些图标主要用于 Microsoft 产品与服务。虽然可以用于个人项目,但商业用途可能需要遵守 Microsoft 的许可条款,因为它们是 Microsoft 拥有的专有资源。
+
+
+**Fluent System Icons** 是 Microsoft 作为 Fluent Design System 一部分推出的开源图标。这些图标基于 MIT 许可证发布,可在个人和商业场景中自由使用。您可以在项目中使用、修改并分发这些图标,但需保留原始许可证和版权声明。
+
+我们强烈建议您将 **Fluent System Icons** 作为首选。
+
+:::
+
+以下是几个使用 Fluent System Icons 的示例:
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+
+对于带有指定尺寸的图标集 (例如 Fluent System Icons) ,您还需要在组件中通过 **FontSize** 属性指定匹配尺寸。
+
+:::info
+
+**FontSize** 属性的默认值是 `16`。如果图标集本身就是为 16px 设计 (例如 Segoe Fluent Icons) ,通常不需要额外指定 **FontSize**。
+
+某些图标集会打包多个尺寸的图标 (例如 Fluent System Icons) ,这时正确设置 FontSize 非常重要。
+
+如果元素的 FontSize 与图标设计尺寸不匹配,像素级对齐效果可能会丢失,图标看起来也可能不自然。
+
+:::
+
+### 不使用图标集
+
+当图标集不适用时,您可以通过 **Glyph** 属性传入 `string` 来设置图标。不过通常还需要指定 **FontFamily** 属性,其默认值是 `Segoe Fluent Icons`。
+
+例如,以下代码:
+
+```xml
+
+```
+
+等价于:
+
+```xml
+
+```
+
+:::warning
+
+我们强烈不建议这样做,因为这会提高代码耦合度和复杂度,后期维护成本也更高。
+
+建议优先使用现成的、符合 Fluent Design 的图标库 (见上文) ,或将您自己的图标库封装为 FontIconData ([教程在此](COMING_SOON)) 。不要把 Glyph 属性作为常规方案。
+
+:::
+
+### 分层与镜像
+
+某些图标 (例如 Segoe Fluent Icons) 具有相同固定宽度、统一高度和一致的左侧起点,因此可以通过将字形直接叠加来实现分层和着色效果。下例展示了在零宽红色爱心上绘制黑色轮廓。
+
+```xml
+
+
+
+
+```
+
+
+
+### 搭配文本元素使用
+
+当您将 FontIcon 与 TextBlock 一起使用时,可能会写出如下代码:
+
+```xml
+
+
+
+
+```
+
+不过还有更好的方式。使用 **IconAndText** 组件可以简化代码并提升可读性:
+
+```xml
+
+```
+
+
+
+关于 IconAndText 组件的更多信息,请 [点击这里](./icon-and-text)。
+
+## 备注
+
+### 图标可用性
+
+#### 第三方图标集
+
+如果您使用自建图标集,请确保指定字体族中包含所有需要的图标。如果许可允许,最佳做法是将字体文件作为资源直接放入项目,并把 FontFamily 设置为对应字体文件路径。
+
+如果您使用第三方图标集,请确认其许可证允许在您的项目中使用。
+
+#### 预置图标集
+
+如果您使用上文提到的 Microsoft 预置图标集,请注意图标可用性。
+
+- 对于 **Segoe Fluent Icons**,FontIcon 会使用系统中的字体。换言之,它们通常仅能在 Windows 11 或更高版本中正确渲染。在 Windows 10 上会回退到 **Segoe MDL Assets 2** (旧设计) ,在 Windows 7 上则不会渲染这些图标。另外,某些图标在 Segoe MDL Assets 2 中可能缺失,只有用户机器安装了 Segoe Fluent Icons 字体后才可用。
+
+ :::info 为什么不内置 Segoe Icons?
+
+ 按照 Microsoft 的要求,这个字体不允许在 Windows 10 与 Windows 11 之外分发,因此我们不建议冒险使用。
+
+ 强烈建议使用开放且免费的 **Fluent System Icons**。它不仅支持多尺寸,还同时提供 regular 与 filled 两种变体。
+
+ 如果您确实要使用 Segoe Fluent Icons 并希望应用兼容 Windows 7,最佳做法是先检测用户设备是否安装了 Segoe Fluent Icons。若未安装,可引导用户从 Microsoft 下载字体 (https://aka.ms/SegoeFluentIcons) 并安装。
+ 安装后需要重启应用,WPF 才能正确加载新字体。
+
+ :::
+
+- 对于 **Fluent System Icons**,字体文件已内置在库中,因此始终可用。
+
+### 许可与版权
+
+如上所述,使用受保护图标集可能引发版权争议。如果您使用自定义图标集,请确保许可证允许在项目中使用。
+
+如果您使用 Microsoft 预置图标集,请特别留意其许可和版权条款。
+
+## 另请参阅
+
+### 相关文章
+
+- [组件 / ImageIcon](./image-icon)
+
+- [组件 / SymbolIcon](./symbol-icon)
+
+- [组件 / PathIcon](./path-icon)
+
+- [组件 / IconAndText](./icon-and-text)
+
+- [组件 / Button](../basic-input/button)
+
+- [组件 / AppBarButton](../menu-and-toolbars/appbar-button)
+
+### Microsoft Learn
+
+- [Segoe Fluent Icons - Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/style/segoe-fluent-icons-font)
+
+- [Segoe MDL2 Assets icons - Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/style/segoe-ui-symbol-font)
+
+- [Design toolkits and samples for Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/downloads#fonts)
+
+- [Iconography in Windows 11](https://learn.microsoft.com/zh-cn/windows/apps/design/signature-experiences/iconography)
+
+- [FontIcon Class (WinRT)](https://learn.microsoft.com/zh-cn/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.fonticon)
diff --git a/data/docs/ui-wpf-modern/03. components/08. navigation/# frame/index.en-US.mdx b/data/docs/ui-wpf-modern/03. components/08. navigation/# frame/index.en-US.mdx
index 408b77a..2966f04 100644
--- a/data/docs/ui-wpf-modern/03. components/08. navigation/# frame/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/03. components/08. navigation/# frame/index.en-US.mdx
@@ -188,7 +188,7 @@ Page1 Page_1 = new Page1();
private void Button_NavigateToPage1_Click(object sender, RoutedEventArgs e)
{
- Frame_Main.Navigate(Page1);
+ Frame_Main.Navigate(Page_1);
}
```
@@ -382,16 +382,16 @@ A Frame automatically uses NavigationThemeTransition to animate navigation betwe
#### Drill
-Use drill when users navigate deeper into an app, such as displaying more information after selecting an item.
+Use Drill when users navigate deeper into an app, such as displaying more information after selecting an item.
The desired feeling is that the user has gone deeper into the app.

-The drill animation is represented by the DrillInNavigationTransitionInfo class.
+The Drill animation is represented by the DrillInNavigationTransitionInfo class.
```csharp
-// Play the drill in animation
+// Play the Drill-in animation
myFrame.Navigate(Page_2, null, new DrillInNavigationTransitionInfo());
```
@@ -425,6 +425,12 @@ Suppressing the animation is useful when implicit show/hide animations is used.
## See also
+### Related articles
+
+- [Components / NavigationView](./navigation-view)
+
+- [Components / TabControl](./tab-control)
+
### Microsoft Learn
- [Navigation Overview - WPF](https://learn.microsoft.com/en-us/dotnet/desktop/wpf/app-development/navigation-overview)
@@ -436,9 +442,3 @@ Suppressing the animation is useful when implicit show/hide animations is used.
- [Frame Class (WPF)](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.frame)
- [Frame Class (WinRT)](https://learn.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.frame)
-
-## Related controls
-
-- [NavigationView](./navigation-view)
-
-- [TabControl](./tab-control)
\ No newline at end of file
diff --git a/data/docs/ui-wpf-modern/03. components/08. navigation/# frame/index.zh-CN.mdx b/data/docs/ui-wpf-modern/03. components/08. navigation/# frame/index.zh-CN.mdx
new file mode 100644
index 0000000..a147274
--- /dev/null
+++ b/data/docs/ui-wpf-modern/03. components/08. navigation/# frame/index.zh-CN.mdx
@@ -0,0 +1,444 @@
+---
+description: "Frame 是一个支持导航的内容控件。"
+---
+
+# Frame
+
+WPF 的 Frame 控件支持在内容之间进行导航。Frame 可以由 Window、NavigationWindow、Page、UserControl、FlowDocument 等根元素承载,也可以作为属于某个根元素的内容树中的独立区域存在。
+
+使用我们扩展后的 Frame 控件,您可以获得 Fluent 风格动画、更好的性能等能力。
+
+- **类**: [iNKORE.UI.WPF.Modern.Controls](..)[.Frame](.)
+
+- **继承**: [Object](https://learn.microsoft.com/zh-cn/dotnet/api/system.object) → (...) → [Control](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.control) → [ContentControl](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.contentcontrol) → [Frame](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.frame) → [Frame](.)
+
+## 示例
+
+### 在页面间导航
+
+以下示例展示如何创建一个简单的 Frame 控件,并在一组页面之间导航。
+
+首先,创建两个页面,分别命名为 `Page1.xaml` 和 `Page2.xaml`。新建一个名为 `Pages` 的文件夹,右键该文件夹并选择 **添加** → **新建项**。选择 **页 (WPF) ** 并命名为 `Page1.xaml`。重复同样步骤创建 `Page2.xaml`。
+
+
+
+
+
+在根元素中添加命名空间声明:
+
+```ini
+xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
+```
+
+将根类从 Page 改为 `ui:Page`。然后进入代码隐藏文件 (例如 `Page1.xaml.cs`) ,把基类从 Page 改为 `iNKORE.UI.WPF.Modern.Controls.Page`。
+
+接着向页面中添加一些内容。例如,为每个页面添加一个 `TextBlock` 来显示页面名称。
+
+您的 **Page1** 应该如下所示:
+
+```xml title="Page1.xaml"
+# highlight-next-line
+
+
+
+
+
+
+# highlight-next-line
+
+
+```
+
+```csharp title="Page1.xaml.cs"
+using iNKORE.UI.WPF.Modern.Controls;
+# highlight-next-line
+using Page = iNKORE.UI.WPF.Modern.Controls.Page;
+
+namespace WpfApp1.Pages
+{
+ public partial class Page1 : Page
+ {
+ public Page1()
+ {
+ InitializeComponent();
+ }
+ }
+}
+```
+
+您的 **Page2** 应该如下所示:
+
+```xml title="Page2.xaml"
+# highlight-next-line
+
+
+
+
+
+
+# highlight-next-line
+
+```
+
+```csharp title="Page2.xaml.cs"
+using iNKORE.UI.WPF.Modern.Controls;
+# highlight-next-line
+using Page = iNKORE.UI.WPF.Modern.Controls.Page;
+
+namespace WpfApp1.Pages
+{
+ public partial class Page2 : Page
+ {
+ public Page2()
+ {
+ InitializeComponent();
+ }
+ }
+}
+```
+
+现在,创建一个新窗口并在其中添加 Frame 控件。再添加几个按钮用于页面切换。使用 **Navigate()** 方法将 Page 传递给 Frame 控件。
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+# highlight-next-line
+
+
+```
+
+```csharp
+Page1 Page_1 = new Page1();
+Page2 Page_2 = new Page2();
+
+private void Button_NavigateToPage1_Click(object sender, RoutedEventArgs e)
+{
+ Frame_Main.Navigate(Page_1);
+}
+
+private void Button_NavigateToPage2_Click(object sender, RoutedEventArgs e)
+{
+ Frame_Main.Navigate(Page_2);
+}
+```
+
+点击按钮后,会导航到对应页面,如下所示:
+
+
+
+:::warning
+
+我们**强烈不建议**您使用 `Navigate(Type sourcePageType)` 方法在页面之间导航。在现代 UI 开发中,不建议继续使用此方式。相反,我们建议使用 Frame 控件提供的 `Navigate(object content)` 方法。
+
+例如,可以把代码从这样:
+
+```csharp
+private void Button_NavigateToPage1_Click(object sender, RoutedEventArgs e)
+{
+ Frame_Main.Navigate(typeof(Page1));
+}
+```
+
+改为这样:
+
+```csharp
+private void Button_NavigateToPage1_Click(object sender, RoutedEventArgs e)
+{
+ Frame_Main.Navigate(new Page1());
+}
+```
+
+或者这样 (更推荐) :
+
+```csharp
+Page1 Page_1 = new Page1();
+
+private void Button_NavigateToPage1_Click(object sender, RoutedEventArgs e)
+{
+ Frame_Main.Navigate(Page_1);
+}
+```
+
+:::
+
+### 切换过渡样式
+
+在 **Navigate()** 方法中,有一些重载允许您传入过渡动画样式。以下示例演示如何使用 Drill-in 过渡样式。
+
+```csharp
+using iNKORE.UI.WPF.Modern.Media.Animation;
+
+private void Button_NavigateToPage1_Click(object sender, RoutedEventArgs e)
+{
+# highlight-next-line
+ Frame_Main.Navigate(Page_1, new DrillInNavigationTransitionInfo());
+}
+```
+
+### 禁用键盘导航
+
+由于 Frame 内置了键盘导航,您可能会发现即使没有代码控制,也可以通过 `Backspace`、`Page Down` 和 `Page Up` 在页面间导航。多数情况下这并不符合预期,因为用户可能误操作返回到不希望跳转的页面,因此建议通过以下方式禁用。
+
+首先,为 Frame 控件的 `Navigating` 事件添加处理器:
+
+```xml
+
+```
+
+创建您自己的 Navigate 方法,并在非预期导航时进行拦截:
+
+```csharp
+WeakReference __Frame_Main_NavigatingTarget = new WeakReference(null);
+private void Frame_Main_Navigating(object sender, NavigatingCancelEventArgs e)
+{
+ if (e.Content != __Frame_Main_NavigatingTarget.Target)
+ {
+ e.Cancel = true;
+ }
+}
+
+public void NavigateTo(object content, object? extraData = null, NavigationTransitionInfo? infoOverride = null)
+{
+ __Frame_Main_NavigatingTarget.Target = content;
+ Frame_Main.Navigate(content, extraData, infoOverride);
+}
+```
+
+然后将您的导航代码改为使用新的 **NavigateTo()** 方法:
+
+```csharp
+private void Button_NavigateToPage1_Click(object sender, RoutedEventArgs e)
+{
+ // 不要再使用 `Frame_Main.Navigate(Page_1)` 了,这不会生效。
+# highlight-next-line
+ NavigateTo(Page_1);
+}
+
+private void Button_NavigateToPage2_Click(object sender, RoutedEventArgs e)
+{
+# highlight-next-line
+ NavigateTo(Page_2);
+}
+```
+
+然后尝试使用键盘在页面间导航,您会发现它不再生效。
+
+## Members
+
+以下是 Frame 控件常用 Members。完整 Members 列表请查看 [API definition](COMING_SOON)。
+
+### Navigate
+
+**Navigate()** 方法用于导航到指定内容。它有多个重载,可以让您传入过渡样式。
+
+以下是我们为 Frame 控件新增的重载:
+
+```csharp
+///
+/// 使 Frame 加载由指定 Page 表示的内容。
+///
+/// 要导航到的页面,以其部分类类型的类型引用指定。
+/// 如果导航未被取消,则为 true;否则为 false。
+public bool Navigate(Type sourcePageType);
+
+///
+/// 使 Frame 加载由指定 Page 表示的内容,并同时传递一个参数,
+/// 供导航目标解释。
+///
+/// 要导航到的页面,以其部分类类型的类型引用指定。
+/// 传递给目标页面的导航参数。
+/// 如果导航未被取消,则为 true;否则为 false。
+public bool Navigate(Type sourcePageType, object parameter);
+
+///
+/// 使 Frame 加载由指定 Page 派生数据类型表示的内容,
+/// 同时传递一个供导航目标解释的参数,
+/// 以及一个指示要使用的动画过渡效果的值。
+///
+/// 要导航到的页面,以其部分类类型的类型引用指定。
+/// 传递给目标页面的导航参数。
+/// 有关动画过渡的信息。
+/// 如果导航未被取消,则为 true;否则为 false。
+public bool Navigate(Type sourcePageType, object parameter, NavigationTransitionInfo infoOverride);
+
+///
+/// 异步导航到由对象包含的内容。
+///
+/// 包含要导航到的内容的 System.Object。
+/// 有关动画过渡的信息。
+/// 如果导航未被取消,则为 true;否则为 false。
+public bool Navigate(object content, NavigationTransitionInfo infoOverride);
+
+///
+/// 异步导航到由对象包含的内容,并传递一个对象,
+/// 其中包含用于导航过程中处理的数据。
+///
+/// 包含要导航到的内容的 System.Object。
+/// 包含用于导航过程中处理的数据的 System.Object。
+/// 有关动画过渡的信息。
+/// 如果导航未被取消,则为 true;否则为 false。
+public bool Navigate(object content, object extraData, NavigationTransitionInfo infoOverride);
+
+///
+/// 异步导航到位于统一资源标识符
+/// (URI) 的源内容,并传递一个包含用于导航过程中处理的数据的对象,
+/// 以及一个指示要使用的动画过渡效果的值。
+///
+/// 使用所需内容的 URI 初始化的 System.Uri 对象。
+/// 包含用于导航过程中处理的数据的 System.Object。
+/// 有关动画过渡的信息。
+/// 如果导航未被取消,则为 true;否则为 false。
+public bool Navigate(Uri source, object extraData, NavigationTransitionInfo infoOverride);
+```
+
+原始 **Frame.Navigate** 方法还提供了更多重载,详情请 [点击这里](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.frame.navigate)。
+
+### GoBack
+
+GoBack() 方法用于导航到返回历史中的最近一项 (前提是 Frame 管理自己的导航历史) 。
+
+```csharp
+///
+/// 如果 Frame 管理自己的导航历史,则导航到返回导航历史中的最近一项,
+/// 并指定要使用的动画过渡效果。
+///
+/// 要使用的动画过渡信息。
+public void GoBack(NavigationTransitionInfo transitionInfoOverride);
+```
+
+您可以在有或没有过渡信息的情况下调用 **GoBack**,例如:
+
+```csharp
+// 不传入 transitionInfoOverride 时,将使用默认过渡效果。
+Frame_Main.GoBack();
+```
+
+或者:
+
+```csharp
+// 传入 transitionInfoOverride 时,将使用指定的过渡效果。
+Frame_Main.GoBack(new DrillInNavigationTransitionInfo());
+```
+
+## 备注
+
+### 过渡动画
+
+页面过渡用于提供页面关系的视觉反馈。
+
+#### Entrance
+
+页面刷新是进入内容时“向上滑动 + 淡入”的组合动画。当用户回到导航顶部时 (例如在标签页或左侧导航项之间切换) ,适合使用该动画。
+
+期望带给用户的感受是:重新开始。
+
+
+
+该动画由 EntranceNavigationTransitionInfo 类表示。
+
+```csharp
+// 显式播放页面刷新动画
+myFrame.Navigate(Page_2, null, new EntranceNavigationTransitionInfo());
+```
+
+:::note
+
+Frame 会自动使用 NavigationThemeTransition 为两个页面间的导航添加动画。默认动画为 Page refresh。
+
+:::
+
+#### Drill
+
+当用户在应用中进入更深层级 (例如选择项目后查看更详细信息) 时,使用 Drill 动画。
+
+期望带给用户的感受是:正在深入应用。
+
+
+
+该动画由 DrillInNavigationTransitionInfo 类表示。
+
+```csharp
+// 播放 Drill-in 动画
+myFrame.Navigate(Page_2, null, new DrillInNavigationTransitionInfo());
+```
+
+#### Slide
+
+使用 Slide 过渡可表达同级页面彼此相邻。NavigationView 控件在顶部导航时会自动使用这种动画;如果您在构建自己的水平导航体验,也可以用 SlideNavigationTransitionInfo 来实现横向滑动。
+
+期望带给用户的感受是:正在相邻页面之间切换。
+
+```csharp
+// 向右导航,即从 LeftPage 到 RightPage
+myFrame.Navigate(RightPage, null, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromRight });
+
+// 向左导航,即从 RightPage 到 LeftPage
+myFrame.Navigate(LeftPage, null, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromLeft });
+
+// 向下导航,即从 TopPage 到 BottomPage
+myFrame.Navigate(BottomPage, null, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromBottom });
+```
+
+#### Suppress
+
+如果希望导航过程中不播放任何动画,可使用 SuppressNavigationTransitionInfo 来替代其他 NavigationTransitionInfo 子类型。
+
+```csharp
+// 禁用默认动画
+myFrame.Navigate(Page2, null, new SuppressNavigationTransitionInfo());
+```
+
+当您使用隐式显示/隐藏动画时,禁用导航动画会很有用。
+
+## 另请参阅
+
+### 相关文章
+
+- [组件 / NavigationView](./navigation-view)
+
+- [组件 / TabControl](./tab-control)
+
+### Microsoft Learn
+
+- [Navigation Overview - WPF](https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/app-development/navigation-overview)
+
+- [Frame - WPF](https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/controls/frame)
+
+- [Page transitions - Windows Apps](https://learn.microsoft.com/zh-cn/windows/apps/design/motion/page-transitions)
+
+- [Frame Class (WPF)](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.frame)
+
+- [Frame Class (WinRT)](https://learn.microsoft.com/zh-cn/uwp/api/windows.ui.xaml.controls.frame)
diff --git a/data/docs/ui-wpf-modern/03. components/08. navigation/# navigation-view/index.en-US.mdx b/data/docs/ui-wpf-modern/03. components/08. navigation/# navigation-view/index.en-US.mdx
index f2df062..6f6161e 100644
--- a/data/docs/ui-wpf-modern/03. components/08. navigation/# navigation-view/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/03. components/08. navigation/# navigation-view/index.en-US.mdx
@@ -4,7 +4,7 @@ description: "Common vertical layout for top-level areas of your app via a colla
# NavigationView
-The navigation view control provides a common vertical layout for top-level areas of your app via a collapsible navigation menu. It adapts to a variety of screen sizes and supports both top and left navigation styles.
+The NavigationView control provides a common vertical layout for top-level areas of your app via a collapsible navigation menu. It adapts to a variety of screen sizes and supports both top and left navigation styles.
- **Class**: [iNKORE.UI.WPF.Modern.Controls](..)[.NavigationView](.)
@@ -12,7 +12,7 @@ The navigation view control provides a common vertical layout for top-level area
## Examples
-This example shows how to create a simple navigation view.
+This example shows how to create a simple NavigationView.
```xml
@@ -48,7 +48,7 @@ This example shows how to create a simple navigation view.
:::warning
-If you're using left compact layout, we recommend you set the property **IsPaneOpen** to `false` in the XAML code. This prevents from the NavigationViewItem shows unexpected title when startup.
+If you're using LeftCompact layout, we recommend you set the property **IsPaneOpen** to `false` in the XAML code. This prevents from the NavigationViewItem shows unexpected title when startup.

@@ -263,18 +263,18 @@ There are more detailed and useful information on [this page](https://learn.micr
## See also
-### Microsoft Learn
+### Related articles
-- [NavigationView - Windows apps](https://learn.microsoft.com/en-us/windows/apps/design/controls/navigationview)
+- [Components / Frame](./frame)
-- [NavigationView Class (WinRT)](https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.navigationview)
+- [Components / FontIcon](../media/font-icon)
-- [Navigation basics - Windows apps](https://learn.microsoft.com/en-us/windows/apps/design/basics/navigation-basics)
+- [Components / TabControl](./tab-control)
-### Related controls
+### Microsoft Learn
-- [Frame](./frame)
+- [NavigationView - Windows apps](https://learn.microsoft.com/en-us/windows/apps/design/controls/navigationview)
-- [FontIcon](../media/font-icon)
+- [NavigationView Class (WinRT)](https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.navigationview)
-- [TabControl](./tab-control)
\ No newline at end of file
+- [Navigation basics - Windows apps](https://learn.microsoft.com/en-us/windows/apps/design/basics/navigation-basics)
diff --git a/data/docs/ui-wpf-modern/03. components/08. navigation/# navigation-view/index.zh-CN.mdx b/data/docs/ui-wpf-modern/03. components/08. navigation/# navigation-view/index.zh-CN.mdx
new file mode 100644
index 0000000..72be83a
--- /dev/null
+++ b/data/docs/ui-wpf-modern/03. components/08. navigation/# navigation-view/index.zh-CN.mdx
@@ -0,0 +1,280 @@
+---
+description: "通过可折叠导航菜单为应用程序的顶级区域提供常见的垂直布局。"
+---
+
+# NavigationView
+
+NavigationView 控件通过可折叠导航菜单为应用程序的顶级区域提供常见的垂直布局。它可以适应各种屏幕尺寸,并支持顶部和左侧两种导航样式。
+
+- **类**: [iNKORE.UI.WPF.Modern.Controls](..)[.NavigationView](.)
+
+- **继承**: [Object](https://learn.microsoft.com/zh-cn/dotnet/api/system.object) → (...) → [Control](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.control) → [ContentControl](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.contentcontrol) → [NavigationView](https://learn.microsoft.com/zh-cn/windows/apps/design/controls/navigationview)
+
+## 示例
+
+此示例演示如何创建一个简单的 NavigationView。
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+
+:::warning
+
+如果您使用的是 LeftCompact 布局,我们建议您在 XAML 代码中将 **IsPaneOpen** 属性设置为 `false`。这样可以防止 NavigationViewItem 在启动时显示意外的标题。
+
+
+
+:::
+
+### 添加 FooterMenuItems
+
+您可以使用 **ui:NavigationView.FooterMenuItems** 属性来向 NavigationView 的页脚 (底部部分) 添加项目。
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+
+### 清除背景
+
+根据 Fluent Design 指南,NavigationView 控件在内容区域中带有如下背景层:
+
+
+
+在某些情况下,您可能希望背景是透明的,不带任何颜色和填充。您可以向 **FrameworkElement.Resources** 添加一些资源:
+
+```xml
+
+
+0,0,0,0
+```
+
+完整代码应如下所示:
+
+```xml
+
+
+
+
+ 0,0,0,0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+然后您应该会看到内容区域不再有填充:
+
+
+
+上面的代码使用了资源重写功能。有关更多信息,您可以查看 [重写 / 重写资源](%BASE_NAME%/features/overrides/override-resources)。
+
+### 在页面之间导航
+
+NavigationView 通常帮助用户在不同页面之间切换。为实现这一点,需要使用一些后台代码和一个 Frame。
+
+有关更多信息,您可以查看 [示例项目 NavigationViewExample](https://github.com/iNKORE-NET/UI.WPF.Modern/tree/main/samples/NavigationViewExample)。
+
+## 备注
+
+### 这是正确的控件吗?
+
+NavigationView 是一种自适应导航控件,适用于:
+
+- 在整个应用程序中提供一致的导航体验。
+- 在较小窗口中节省屏幕空间。
+- 组织对多个导航类别的访问。
+
+### IsFooterSeparatorVisible
+
+当同时拥有 MenuItems 和 FooterMenus 且高度不足以容纳所有项目时,会出现滚动条来显示它们,并且您可能还会看到 MenuItems 和 FooterMenuItems 之间的分隔线。
+
+您可以使用 **IsFooterSeparatorVisible** 属性来控制此分隔线是否可见。您可以选择三个值:
+
+- `true`:无论高度如何,分隔线始终可见。
+
+- `false`:无论高度如何,分隔线始终不可见。
+
+- `null`:只有在空间不足以显示所有项目时,分隔线才可见。
+
+默认值为 `null`。
+
+### 显示模式
+
+您可以使用 PaneDisplayMode 属性为 NavigationView 配置不同的导航样式或显示模式。
+
+#### Top
+
+面板位于顶部。
+`PaneDisplayMode="Top"`
+
+
+
+以下情况推荐顶部导航:
+
+- 您有 5 个或更少同等重要的顶级导航类别,并且下拉溢出菜单中的任何额外顶级导航类别都被视为不那么重要。
+- 您需要在屏幕上显示所有导航选项。
+- 您希望为应用内容留出更多空间。
+- 图标无法清晰描述应用的导航类别。
+
+#### Left
+
+面板展开并位于左侧。
+`PaneDisplayMode="Left"`
+
+
+
+以下情况推荐左侧导航:
+
+- 您有 5 到 10 个同等重要的顶级导航类别。
+- 您希望导航类别非常醒目,而其他应用内容的空间更少。
+
+#### LeftCompact
+
+面板在打开之前只显示图标,并位于内容左侧。打开后,面板会覆盖内容。
+`PaneDisplayMode="LeftCompact"`
+
+
+
+#### LeftMinimal
+
+在打开面板之前,只显示菜单按钮。打开后,面板会覆盖内容左侧。
+`PaneDisplayMode="LeftMinimal"`
+
+
+
+#### Auto
+
+默认情况下,PaneDisplayMode 设置为 Auto。在 Auto 模式下,当窗口变窄时,NavigationView 会从 LeftMinimal 适配到 LeftCompact,再随着窗口变宽切换到 Left。有关更多信息,请参阅自适应行为部分。
+
+
+
+### 详细信息与指南
+
+[此页面](https://learn.microsoft.com/zh-cn/windows/apps/design/controls/navigationview)提供了更详细且有用的信息。如果您想更好地使用 NavigationView,强烈建议阅读它。
+
+## 另请参阅
+
+### 相关文章
+
+- [组件 / Frame](./frame)
+
+- [组件 / FontIcon](../media/font-icon)
+
+- [组件 / TabControl](./tab-control)
+
+
+### Microsoft Learn
+
+- [NavigationView - Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/controls/navigationview)
+
+- [NavigationView Class (WinRT)](https://learn.microsoft.com/zh-cn/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.navigationview)
+
+- [Navigation basics - Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/basics/navigation-basics)
diff --git a/data/docs/ui-wpf-modern/03. components/08. navigation/# tab-control/index.en-US.mdx b/data/docs/ui-wpf-modern/03. components/08. navigation/# tab-control/index.en-US.mdx
index f78a12c..fc1ff19 100644
--- a/data/docs/ui-wpf-modern/03. components/08. navigation/# tab-control/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/03. components/08. navigation/# tab-control/index.en-US.mdx
@@ -209,8 +209,6 @@ You can add icons for a Pivot tab item using **ui:TabItemHelper.Icon** as well.
This feature is only available for version **0.9.28** or higher. If you have set the **ui:TabItemHelper.Icon** property and find out the icon not appearing, please consider upgrading the library version.
-If you can't see the version 0.9.28 in the Nuget Package Manager, this means this version has't released yet. Please wait for the release or compile the library yourself.
-
:::
## Remarks
@@ -244,6 +242,10 @@ There are two built-in styles for TabItem control:
## See also
+### Related articles
+
+- [Components / NavigationView](./navigation-view)
+
### Microsoft Learn
- [TabControl Class (WPF)](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.tabcontrol)
@@ -255,7 +257,3 @@ There are two built-in styles for TabItem control:
- [Pivot - Windows apps](https://learn.microsoft.com/en-us/windows/apps/design/controls/pivot)
- [Selector bar - Windows apps](https://learn.microsoft.com/en-us/windows/apps/design/controls/selector-bar)
-
-### Related controls
-
-- [NavigationView](./navigation-view)
\ No newline at end of file
diff --git a/data/docs/ui-wpf-modern/03. components/08. navigation/# tab-control/index.zh-CN.mdx b/data/docs/ui-wpf-modern/03. components/08. navigation/# tab-control/index.zh-CN.mdx
new file mode 100644
index 0000000..ea84df2
--- /dev/null
+++ b/data/docs/ui-wpf-modern/03. components/08. navigation/# tab-control/index.zh-CN.mdx
@@ -0,0 +1,269 @@
+---
+description: "一个通过选择相应选项卡来访问离散页面并显示内容的控件。"
+---
+
+# TabControl
+
+选项卡 (Tabs) 用于组织相关内容组,并允许在同一层级的内容页面之间进行导航。
+
+- **Class**: [System.Windows.Controls](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls)[.TabControl](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.tabcontrol)
+
+- **Inheritance**: [Object](https://learn.microsoft.com/zh-cn/dotnet/api/system.object) → (...) → [Control](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.control) → [ItemsControl](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.itemscontrol) → [Selector](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.primitives.selector) → [TabControl](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.tabcontrol)
+
+
+## 示例
+
+### 基本的 TabControl
+
+下面的示例创建了一个包含 3 个选项卡的简单 TabControl。
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+
+
+### 带图标的 TabItem
+
+你可以使用 **ui:TabItemHelper.Icon** 属性为每个 `TabItem` 添加图标。
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+
+
+### 处理命令按钮
+
+TabControl 的默认样式带有关闭按钮,可用于移除或关闭选项卡。你可以使用 **ui:TabItemHelper.CloseTabButtonCommand** 来处理关闭按钮的点击事件。
+
+此外还有一个“添加选项卡”按钮,可用于创建新选项卡。你可以使用 **ui:TabControlHelper.AddTabButtonCommand** 来处理添加按钮的点击事件。
+
+如果你想为整个 TabControl 删除这些按钮,可以在 TabControl 上设置 **ui:TabControlHelper.IsAddTabButtonVisible** 为 `False`,这会同时移除关闭按钮和添加选项卡按钮。
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+
+
+### 添加页眉和页脚
+
+你也可以使用 **ui:TabControlHelper.TabStripHeader** 和 **ui:TabControlHelper.TabStripFooter** 属性来为选项卡条添加页眉和页脚。
+
+由于这两个属性接受 `object` 值,你可以在页眉和页脚中放置任意内容,例如文本、控件、图标等。
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+
+
+### Pivot 样式
+
+Pivot 样式支持在一组内容节之间通过触控滑动进行切换。要创建 Pivot 控件,只需将 Pivot 样式应用到 `TabControl` 即可。
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+
+
+:::warning
+
+一旦将 TabControl 应用为 Pivot 样式,`TabStripPlacement` 属性将不可用。Pivot 只能在顶部显示选项卡。
+
+这主要是因为我们尚未为其他放置场景完善代码;如果你有兴趣,可以在 [Pivot.xaml](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Themes/Styles/Pivot.xaml) 中添加该功能,欢迎提交 PR!
+
+另外,如果你想为 Pivot 样式的 TabControl 添加页眉,请不要使用 `ui:TabControlHelper`,而应使用 `ui:PivotHelper`,例如:
+
+- `ui:TabControlHelper.TabStripHeader` → `ui:PivotHelper.LeftHeader`
+
+- `ui:TabControlHelper.TabStripFooter` → `ui:PivotHelper.RightHeader`
+
+:::
+
+
+### 带图标的 Pivot
+
+你也可以使用 **ui:TabItemHelper.Icon** 为 Pivot 的选项卡添加图标。但建议调整图标大小,因为 Pivot 的头部更大,推荐使用 `20` 或 `24` 的字体大小。
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+
+
+:::warning
+
+此功能仅在 **0.9.28** 或更高版本可用。如果你已设置 **ui:TabItemHelper.Icon** 却未看到图标,请考虑升级库版本。
+
+:::
+
+
+## 备注
+
+### 这是合适的控件吗?
+
+如果要创建一个显示选项卡集合的控件 (用于展示多个文档,并支持添加、关闭或移动) ,请使用带有默认样式的 `TabControl`。
+
+若要实现常见的顶部导航模式,我们建议使用 `NavigationView` 或带有 Pivot 样式的 `TabControl`。
+
+下面列出 `NavigationView` 与 `Pivot` 的一些关键差异:
+
+- Pivot 支持通过触控滑动在项之间切换。
+- Pivot 使用轮播 (Carousel) 处理溢出项,而 NavigationView 使用菜单下拉的方式展示溢出项,便于用户查看所有项。
+- Pivot 适合处理内容节之间的切换,而 NavigationView 在导航行为上提供更多控制能力。
+
+
+### 样式
+
+`TabControl` 内置了两种样式:
+
+- `DefaultTabControlStyle`:`TabControl` 的默认样式,可通过 `ui:ThemeKeys.DefaultTabControlStyleKey` 访问。
+
+- `TabControlPivotStyle`:`TabControl` 的 Pivot 样式,可通过 `ui:ThemeKeys.TabControlPivotStyleKey` 访问。
+
+`TabItem` 也内置了两种样式:
+
+- `DefaultTabItemStyle`:`TabItem` 的默认样式,可通过 `ui:ThemeKeys.DefaultTabItemStyleKey` 访问。
+
+- `TabItemPivotStyle`:`TabItem` 的 Pivot 样式,可通过 `ui:ThemeKeys.TabItemPivotStyleKey` 访问。
+
+
+## 另请参阅
+
+### 相关文章
+
+- [组件 / NavigationView](./navigation-view)
+
+### Microsoft Learn
+
+- [TabControl Class (WPF)](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.tabcontrol)
+
+- [TabControl - WPF](https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/controls/tabcontrol)
+
+- [Tab View - Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/controls/tab-view)
+
+- [Pivot - Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/controls/pivot)
+
+- [Selector bar - Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/controls/selector-bar)
diff --git a/data/docs/ui-wpf-modern/04. features/01. theming/01.# theme-schemes/index.zh-CN.mdx b/data/docs/ui-wpf-modern/04. features/01. theming/01.# theme-schemes/index.zh-CN.mdx
new file mode 100644
index 0000000..5d9f1f3
--- /dev/null
+++ b/data/docs/ui-wpf-modern/04. features/01. theming/01.# theme-schemes/index.zh-CN.mdx
@@ -0,0 +1,167 @@
+---
+description: "Windows apps can use a light or dark application theme. The theme affects the colors of the app's background, text, icons, and common controls."
+title: "主题方案"
+---
+
+
+# 主题方案 (亦称主题模式)
+
+Windows 应用可以使用浅色或深色的应用主题。主题会影响应用的背景、文本、图标以及常用控件的配色。
+
+:::note
+
+本文讨论的是主题方案 (浅色/深色) 。如果你想了解强调色 (又称主色) ,请参见 [主题 / 强调色](./accent-color)。
+
+:::
+
+## 可用方案
+
+所有控件都提供两种调色模式:浅色 (默认) 和深色。
+
+### 浅色
+
+浅色主题为默认主题模式,常用于大多数应用,设计上以护眼为目标,提供背景与前景之间良好的对比度。浅色主题适用于光线充足的环境,且推荐在对比度要求较高或有视力障碍的场景中使用。
+
+
+
+### 深色
+
+深色主题适用于光线较暗的环境,提供背景与前景之间更高的对比度,便于在夜间或昏暗房间中阅读文本和识别图标。
+
+
+
+## 更改主题值
+
+默认情况下,应用的主题遵循用户在 Windows 设置中的偏好或设备的默认主题。你也可以为你的应用单独设置主题。
+
+### 使用 ThemeResources (静态且全局)
+
+当你使用全局的 **ThemeResources** 时,可以通过 `RequestedTheme` 属性在 XAML 中设置应用的默认主题模式。示例 `App.xaml` 如下:
+
+```ini
+RequestedTheme="Dark"
+```
+
+```xml title="App.xaml"
+
+
+
+
+
+
+
+
+
+
+```
+
+若希望遵循系统设置,可将其设置为空值:
+
+```ini
+RequestedTheme="{x:Null}"
+```
+
+### 使用 ThemeManager.Current (动态且全局)
+
+若需在运行时动态切换主题,可以使用 **ThemeManager.Current.ApplicationTheme**:
+
+```csharp
+ThemeManager.Current.ApplicationTheme = ApplicationTheme.Dark;
+```
+
+例如,一个主题切换按钮的实现如下:
+
+```xml
+
+```
+
+```csharp
+private void Button_ToggleTheme_Click(object sender, RoutedEventArgs e)
+{
+ if (ThemeManager.Current.ApplicationTheme == ApplicationTheme.Dark)
+ {
+ ThemeManager.Current.ApplicationTheme = ApplicationTheme.Light;
+ }
+ else
+ {
+ ThemeManager.Current.ApplicationTheme = ApplicationTheme.Dark;
+ }
+}
+```
+
+若希望遵循系统设置,可将其设置为 `null`:
+
+```csharp
+ThemeManager.Current.ApplicationTheme = null;
+```
+
+### 使用 ThemeManager 附加属性 (局部)
+
+若只想为某个控件局部切换主题,可使用 **ThemeManager.Theme** 附加属性,例如:
+
+```ini
+ui:ThemeManager.RequestedTheme="Dark"
+```
+
+示例:
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+
+若希望遵循系统设置,可将其设置为默认:
+
+```ini
+ui:ThemeManager.RequestedTheme="Default"
+```
+
+## 备注
+
+### 默认值
+
+如果未指定主题或使用默认值,应用将遵循系统设置。
+
+:::warning 有时例外
+
+在某些情况下,应用可能无法遵循系统设置,通常是因为 WinRT 设置读取器不可用,例如:
+
+- 应用运行在 Windows 7/8/8.1 或较旧的 Windows 10 版本;
+- 项目设置中的目标操作系统版本低于 `windows10.0.18362.0`。
+
+:::
+
+## 另请参阅
+
+### 相关文章
+
+- [主题 / 强调色](./accent-color)
+
+### Microsoft Learn
+
+- [Color in Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/style/color)
+
+- [Color in Windows 11](https://learn.microsoft.com/zh-cn/windows/apps/design/signature-experiences/color)
+
+- [Layering and elevation in Windows 11](https://learn.microsoft.com/zh-cn/windows/apps/design/signature-experiences/layering)
+
diff --git a/data/docs/ui-wpf-modern/04. features/01. theming/02.# accent-color/index.zh-CN.mdx b/data/docs/ui-wpf-modern/04. features/01. theming/02.# accent-color/index.zh-CN.mdx
new file mode 100644
index 0000000..ee1f07f
--- /dev/null
+++ b/data/docs/ui-wpf-modern/04. features/01. theming/02.# accent-color/index.zh-CN.mdx
@@ -0,0 +1,116 @@
+---
+description: "Windows apps can use a light or dark application theme. The theme affects the colors of the app's background, text, icons, and common controls."
+title: "强调色"
+---
+
+
+# 强调色 (Accent color)
+
+:::note
+
+本文讨论的是强调色 (又称主色) 。若需了解主题方案 (浅色/深色) ,请参见 [主题 / 主题方案](./theme-schemes)。
+
+:::
+
+强调色用于突出界面中的重要元素,并指示交互对象或控件的状态。强调色会自动生成一组浅/深色变体,并针对浅色与深色模式优化对比度。强调色应谨慎使用,用于高亮重要元素并传达交互状态信息。
+
+## 选择强调色
+
+如果为应用选择自定义强调色,请确保使用该强调色的文本与背景之间具有足够的对比度以保证可读性。你可以使用 Windows 设置中的取色器,或使用这些 [在线对比度工具](https://www.w3.org/TR/WCAG20-TECHS/G18.html#G18-resources) 进行测试。
+
+
+
+## 强调色调色板
+
+Windows Shell 中的强调色算法会生成该强调色的一组浅色与深色变体。
+
+
+
+这些变体可以作为主题资源访问:
+
+- `SystemAccentColorLight3`
+
+- `SystemAccentColorLight2`
+
+- `SystemAccentColorLight1`
+
+- `SystemAccentColorDark1`
+
+- `SystemAccentColorDark2`
+
+- `SystemAccentColorDark3`
+
+你也可以通过 `FrameworkElement.FindResource` 或 **ThemeKeys** 编程访问强调色调色板。
+
+在有色背景上使用有色文本时,请确保文本与背景之间有足够的对比度。默认情况下,超链接或高亮文本会使用强调色。如果你对背景应用了强调色的变体,建议对文本使用原始强调色的相应变体,以优化有色背景上的文本对比度。
+
+下图示例展示了强调色在不同浅/深变体上的应用,以及有色文本在有色背景上的效果。
+
+
+
+## 重写强调色
+
+常用控件会使用强调色来传达状态信息。默认情况下,强调色为系统设置中用户选定的 `SystemAccentColor`。你也可以自定义应用的强调色以体现品牌风格。
+
+当使用全局 **ThemeResources** 时,可通过 `AccentColor` 属性在 XAML 中设置应用的强调色,例如:
+
+```xml
+
+```
+
+示例 `App.xaml` 应该如下所示:
+
+```xml title="App.xaml"
+
+
+
+
+
+
+
+
+
+
+```
+
+添加一些控件进行测试:
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+
+## 另请参阅
+
+### 相关文章
+
+- [主题 / 主题方案](./theme-schemes)
+
+### Microsoft Learn
+
+- [Color in Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/style/color)
+
+- [Color in Windows 11](https://learn.microsoft.com/zh-cn/windows/apps/design/signature-experiences/color)
+
+- [Layering and elevation in Windows 11](https://learn.microsoft.com/zh-cn/windows/apps/design/signature-experiences/layering)
+
diff --git a/data/docs/ui-wpf-modern/04. features/01. theming/04.# elevations/index.zh-CN.mdx b/data/docs/ui-wpf-modern/04. features/01. theming/04.# elevations/index.zh-CN.mdx
new file mode 100644
index 0000000..af35986
--- /dev/null
+++ b/data/docs/ui-wpf-modern/04. features/01. theming/04.# elevations/index.zh-CN.mdx
@@ -0,0 +1,59 @@
+# 层级
+
+层级表示表面与另一表面在桌面上位置关系的深度分量。当两个或多个对象占据屏幕上的同一位置时,只有层级最高的对象会在该位置被渲染。
+
+在控件和表面上使用阴影与轮廓 (边缘) 可以微妙地传达对象的层级,并在交互过程中帮助引导焦点。Windows 11 使用阴影与轮廓来表达层级感以及相关的数值与效果。
+
+## 轮廓层级
+
+以 `Button` 控件为例,其边框底部带有高亮以产生深度感。下面是带有层级与不带层级的 `Button` 对比:
+
+
+
+### 适用控件
+
+- [Button](%BASE_NAME%/components/basic-input/button)、[ToggleButton](%BASE_NAME%/components/basic-input/toggle-button)、[RepeatButton](%BASE_NAME%/components/basic-input/repeat-button)、[DropDownButton](%BASE_NAME%/components/basic-input/dropdown-button)、[SplitButton](%BASE_NAME%/components/basic-input/split-button)、[ToggleSplitButton](%BASE_NAME%/components/basic-input/toggle-split-button)
+
+- [TextBox](%BASE_NAME%/components/text/text-box)、[RichTextBox](%BASE_NAME%/components/text/richtext-box)、[PasswordBox](%BASE_NAME%/components/text/password-box)、[NumberBox](%BASE_NAME%/components/text/number-box)、[AutoSuggestBox](%BASE_NAME%/components/text/autosuggest-box)
+
+### 应用方式
+
+可以使用 `ElevationBorder` 控件在任意位置添加层级效果。
+
+更多信息请参见 [ElevationBorder Control](%BASE_NAME%/components/media/elevation-border)。
+
+### 自定义
+
+可以使用 `ui:ElevationBorder` 的附加属性来自定义控件的层级。例如,下面的代码会移除 `Button` 的层级效果:
+
+```xml
+
+```
+
+你还可以指定颜色、不透明度、阴影方向等更多参数。详情请参见 [ElevationBorder Class](%BASE_NAME%/definitions/controls/elevation-border)。
+
+## 阴影层级 (Shadow elevation)
+
+阴影层级通过为元素添加细腻的阴影效果来实现,从而产生该元素抬升或悬浮于表面之上的视觉错觉。这一技术常用于增强界面元素之间的视觉深度与分离感。
+
+
+
+在 Windows 11 的 Fluent Design 体系中,阴影层级是重要组成部分,旨在营造更沉浸和吸引人的用户体验。Windows 11 所使用的阴影层级数值经过精心设计,以便在不同 UI 组件间保持一致且美观的外观。
+
+通过对卡片、面板和对话框等元素应用阴影层级,可以提升它们的视觉层次,使其从背景中突出,帮助用户快速识别可交互元素并理解界面结构。
+
+### 适用控件
+
+所有表示对话框、弹出 (包括菜单) 或卡片的控件都应具有阴影层级。
+
+### 应用方式
+
+可以使用 `DropShadowPanel` 控件为窗口中的控件添加阴影层级。更多信息请参见 [DropShadowPanel Control](%BASE_NAME%/components/media/dropshadow-panel)。
+
+系统会自动为所有对话框、弹出和菜单 (均视作窗口) 应用阴影层级。
+
+## 另请参阅
+
+### Microsoft Learn
+
+- [Layering and elevation in Windows 11](https://learn.microsoft.com/zh-cn/windows/apps/design/signature-experiences/layering)
\ No newline at end of file
diff --git a/data/docs/ui-wpf-modern/04. features/01. theming/05.# system-awareness/index.en-US.mdx b/data/docs/ui-wpf-modern/04. features/01. theming/05.# system-awareness/index.en-US.mdx
index 4c68ad7..c74b66c 100644
--- a/data/docs/ui-wpf-modern/04. features/01. theming/05.# system-awareness/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/04. features/01. theming/05.# system-awareness/index.en-US.mdx
@@ -1,4 +1,4 @@
-{/* 此库默认与系统的这几个设置保持同步:Theme scheme,accent color,自动隐藏滚动条。其中 自动隐藏滚动条 需要 win11,其他的至少要 win10。.net framework 应用无需任何处理即可保持同步;对于 .net 应用,需要将目标平台设置为 10.0.18362.0 以上才可以使用此功能。请注意,将目标平台设置为 10.0.18362.0 以上会导致你的应用生成目录下多出两个 dll(约 25mb)的依赖(删掉后程序无法启动);而将目标平台设置为 7.0 不会有这两个 dll,但是 1. 同步功能无法运作,2. 项目错误列表中会出现一个警告,这个警告是无害的,忽略即可。<这里说明多出来的两个 dll 是微软 .net 的设计缺陷,因为要和 winrt 交互,撇清关系,我们不背这个锅> 另外即使满足自动同步的条件,你也可以手动指定这些设置。 */}
+{/* 此库默认与系统的这几个设置保持同步:Theme scheme,accent color,自动隐藏滚动条。其中 自动隐藏滚动条 需要 win11,其他的至少要 win10。.net framework 应用无需任何处理即可保持同步;对于 .net 应用,需要将目标平台设置为 10.0.18362.0 以上才可以使用此功能。请注意,将目标平台设置为 10.0.18362.0 以上会导致你的应用生成目录下多出两个 dll (约 25mb) 的依赖 (删掉后程序无法启动) ;而将目标平台设置为 7.0 不会有这两个 dll,但是 1. 同步功能无法运作,2. 项目错误列表中会出现一个警告,这个警告是无害的,忽略即可。<这里说明多出来的两个 dll 是微软 .net 的设计缺陷,因为要和 winrt 交互,撇清关系,我们不背这个锅> 另外即使满足自动同步的条件,你也可以手动指定这些设置。 */}
# System Settings Awareness
diff --git a/data/docs/ui-wpf-modern/04. features/01. theming/category.zh-CN.json b/data/docs/ui-wpf-modern/04. features/01. theming/category.zh-CN.json
new file mode 100644
index 0000000..9e9ba06
--- /dev/null
+++ b/data/docs/ui-wpf-modern/04. features/01. theming/category.zh-CN.json
@@ -0,0 +1,8 @@
+{
+ "label": "主题",
+ "link":
+ {
+ "type": "generated-index",
+ "description": "主题指定了组件的颜色、表面的深浅、阴影的程度、墨迹元素的适当不透明度等。"
+ }
+}
diff --git a/data/docs/ui-wpf-modern/04. features/02. overrides/01.# override-resources/index.en-US.mdx b/data/docs/ui-wpf-modern/04. features/02. overrides/01.# override-resources/index.en-US.mdx
index b4f2608..96d8bd6 100644
--- a/data/docs/ui-wpf-modern/04. features/02. overrides/01.# override-resources/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/04. features/02. overrides/01.# override-resources/index.en-US.mdx
@@ -164,7 +164,7 @@ You can use `ui:StaticResource` in anywhere you want to forward the resource ove
## Examples
-### Remove background andf border of a TextBox
+### Remove background and border of a TextBox
By default, the TextBox control comes with a border and background. However, in some cases, you may want to remove them. You can do this by overriding the `TextBoxBackground` and `TextBoxBorderBrush` resources like this:
diff --git a/data/docs/ui-wpf-modern/04. features/02. overrides/01.# override-resources/index.zh-CN.mdx b/data/docs/ui-wpf-modern/04. features/02. overrides/01.# override-resources/index.zh-CN.mdx
new file mode 100644
index 0000000..6cbff24
--- /dev/null
+++ b/data/docs/ui-wpf-modern/04. features/02. overrides/01.# override-resources/index.zh-CN.mdx
@@ -0,0 +1,248 @@
+# 重写资源
+
+本文介绍了一种自定义应用外观和行为的方法:重写资源 (Override Resources) 。
+
+## 为什么要重写资源
+
+例如,你希望将 `Button` 的背景颜色改为红色。通常你可以直接设置 `Background` 属性:
+
+```xml
+
+```
+
+乍一看这似乎没问题,但当将鼠标移动到按钮上时会出现问题:默认样式的触发器会重写你设置的颜色。为了解决这个问题,你可能会想到同时指定悬停 (hover) 和按下 (pressed) 时的颜色。
+
+
+
+看下 `Button.xaml` 的 **ControlTemplate.Triggers** 部分 (位于项目源代码中) :
+
+```xml title="Button.xaml"
+
+```
+
+这些颜色并非硬编码,而是通过 `DynamicResource` 标记扩展设置的。`DynamicResource` 允许你通过重写资源键来定制样式,这就是为什么模板使用 `DynamicResource` 而非硬编码颜色值的原因。
+
+## 如何重写资源
+
+### 重写单个资源
+
+在 `FrameworkElement` 类中有一个 `Resources` 属性,它是一个字典,包含该元素及其子元素可使用的资源。要重写某个资源,只需在对应字典中添加相同键的新资源。获取键的推荐方式是使用 `ui:ThemeKeys` 类结合 `x:Static`。
+
+例如,下面示例在鼠标悬停时将按钮背景改为绿色:
+
+```xml
+
+```
+
+这样当鼠标移动到按钮上时,背景颜色就会变为绿色。以此方法,你可以重写任意未被硬编码的资源 (颜色、画刷、厚度、Double、动画等) 。
+
+
+
+:::info 小许缺憾
+
+在 Visual Studio 中,`x:Static` 用于 `x:Key` 时 IntelliSense 有时体验不佳,但这只是编辑器的问题,运行时代码仍然有效。
+
+:::
+
+### 重写多个资源
+
+你可以在某个容器上一次性重写多项资源,从而影响该容器及其子元素。例如,可以让所有按钮在悬停时变绿、按下时变蓝:
+
+```xml
+
+# highlight-start
+
+
+
+
+
+# highlight-end
+
+
+
+
+
+
+```
+
+
+
+### 全局重写资源
+
+也可以在应用级别重写资源,只需将资源添加到 `Application.Resources`,使其对整个应用生效:
+
+```xml title="App.xaml"
+
+
+
+
+
+
+
+
+# highlight-start
+
+
+# highlight-end
+
+
+
+```
+
+上述代码与前述示例功能相同,但作用域为整个应用。
+
+### 转发资源重写
+
+有时你希望将一个资源指向另一个资源,而不是复制值。为此可以使用 `ui:StaticResource` 标记扩展:
+
+```xml
+
+
+```
+
+上述代码将 `ButtonBackgroundPointerOver` 指向 `SubtleFillColorSecondaryBrush`,将 `ButtonBackgroundPressed` 指向 `SubtleFillColorTertiaryBrush`,无需复制具体值,有利于可维护性。
+
+你可以在任何需要转发资源的地方使用 `ui:StaticResource`,正如上文所示。
+
+## 示例
+
+### 移除 TextBox 的背景与边框
+
+默认情况下,`TextBox` 带有边框与背景,但在某些场景下你可能想移除它们。可以通过重写相应资源来实现:
+
+```xml
+
+
+
+
+# highlight-start
+
+
+
+
+
+
+
+# highlight-end
+
+
+```
+
+
+
+另外,也可以通过设置 **BorderThickness** 控制边框:
+
+```xml
+0
+0
+```
+
+两种方法效果相近,但原理不同:第一种通过设置颜色为透明来“隐藏”边框,第二种通过将厚度设为 0 来移除边框。
+
+:::tip
+
+同样适用于 `RichTextBox`、`PasswordBox` 及其它继承自 `TextBox` 的控件。
+
+:::
+
+### 移除 NavigationView 的色调
+
+`NavigationView` 默认带有一层色调,你可以通过重写资源移除它。详细内容见 [NavigationView](%BASE_NAME%/components/navigation/navigation-view#clear-background) 页面。
+
+### 将按钮设置为任意颜色
+
+在某些场景 (例如“删除文件”确认对话框) ,你可能希望将按钮设置为非默认或非强调色,例如红色。可以通过重写按钮的颜色资源实现:
+
+```xml
+
+```
+
+
+
+## 另请参阅
+
+### 相关文章
+
+- [主题 / 主题资源](%BASE_NAME%/features/theming/theme-resources)
+
+- [定义 / StaticResourceExtension Class](%BASE_NAME%/definitions/markup/static-resource-extension)
+
+### Microsoft Learn
+
+- [ResourceDictionary Class (WPF)](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.resourcedictionary)
+
+- [Application Resource, Content, and Data Files - WPF](https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/app-development/wpf-application-resource-content-and-data-files)
+
+- [Merged resource dictionaries (WPF .NET)](https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/systems/xaml-resources-merged-dictionaries)
\ No newline at end of file
diff --git a/data/docs/ui-wpf-modern/04. features/02. overrides/category.zh-CN.json b/data/docs/ui-wpf-modern/04. features/02. overrides/category.zh-CN.json
new file mode 100644
index 0000000..2c0c98f
--- /dev/null
+++ b/data/docs/ui-wpf-modern/04. features/02. overrides/category.zh-CN.json
@@ -0,0 +1,8 @@
+{
+ "label": "重写",
+ "link":
+ {
+ "type": "generated-index",
+ "description": "重写功能使您能够高度自定义组件的外观。"
+ }
+}
diff --git a/data/docs/ui-wpf-modern/05. definitions/00. controls/00. helpers/# window-helper/index.en-US.mdx b/data/docs/ui-wpf-modern/05. definitions/00. controls/00. helpers/# window-helper/index.en-US.mdx
index 45bc1c7..ec98574 100644
--- a/data/docs/ui-wpf-modern/05. definitions/00. controls/00. helpers/# window-helper/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/05. definitions/00. controls/00. helpers/# window-helper/index.en-US.mdx
@@ -78,7 +78,7 @@ This property decides whether the **Background** property will be applied to the
### ApplyNoise
-This property decides whether the noise effect will be applied to the window. If you set this property to **False**, the noise effect will not be rendered. The noise effect is a subtle noise texture that makes the window look more natural and less flat. The default value is always **False** since we figured out that when you use the acrylic backdrop, the noise effect will be covered by system and it's not necessary to render the noise effect again.
+This property decides whether the noise effect will be applied to the window. If you set this property to **False**, the noise effect will not be rendered. The noise effect is a subtle noise texture that makes the window look more natural and less flat. The default value is always **False** since we figured out that when you use the Acrylic backdrop, the noise effect will be covered by system and it's not necessary to render the noise effect again.
You can set this property to **True** to enable an additional noise effect manually.
@@ -180,4 +180,4 @@ This class is used to customize the [Window](%BASE_NAME%/components/dialogs/wind
### Source code
-- [Github | WindowHelper.cs](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Controls/Helpers/WindowHelper.cs)
\ No newline at end of file
+- [GitHub | WindowHelper.cs](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Controls/Helpers/WindowHelper.cs)
\ No newline at end of file
diff --git a/data/docs/ui-wpf-modern/05. definitions/00. controls/00. helpers/# window-helper/index.zh-CN.mdx b/data/docs/ui-wpf-modern/05. definitions/00. controls/00. helpers/# window-helper/index.zh-CN.mdx
new file mode 100644
index 0000000..53194bb
--- /dev/null
+++ b/data/docs/ui-wpf-modern/05. definitions/00. controls/00. helpers/# window-helper/index.zh-CN.mdx
@@ -0,0 +1,165 @@
+---
+description: 提供窗口组件的附加属性和样式管理。
+---
+
+
+# WindowHelper 类
+
+提供用于窗口组件的附加属性与样式管理。
+
+## 定义
+
+- 命名空间: [iNKORE.UI.WPF.Modern.Controls.Helpers](.)
+- 程序集: iNKORE.UI.WPF.Modern.dll
+
+```csharp
+public static class WindowHelper {...}
+```
+
+静态类,无继承关系。
+
+## 依赖属性
+
+### UseModernWindowStyle
+
+获取或设置是否对窗口应用现代窗口样式。现代窗口样式为窗口提供现代外观与交互体验。
+
+仅当将此值设为 `true` 时,下列属性才会生效。
+
+- 属性:附加属性
+- 类型:`bool`
+- 默认值:`false`
+
+### SystemBackdropType
+
+获取或设置窗口材质类型。可从 [BackdropType 枚举](%BASE_NAME%/definitions/helpers/styles/backdrop-type) 中选择。
+
+:::warning 系统兼容性
+
+上文列出了 Acrylic 背景的可用性。Mica 与 Tabbed 背景仅在 Windows 11 可用;在较旧的 Windows 版本上,这些窗口材质将不会生效。
+
+选项 **Acrylic** 会根据系统版本自动选择合适的 API:在 Windows 11 上使用 Acrylic11,在 Windows 10 上使用 Acrylic10,但这可能会引发一些不期望的行为。
+
+:::
+
+- 属性:附加属性
+- 类型:[BackdropType](%BASE_NAME%/definitions/helpers/styles/backdrop-type)
+- 默认值:`BackdropType.None`
+
+### Acrylic10Color
+
+获取或设置 Acrylic10 背景的颜色。仅在 **SystemBackdropType** 为 `Acrylic10` 或在 Windows 10 上以 `Acrylic` 运行时生效。你可以通过设置 **Color** 值来自定义 Acrylic10 背景颜色。
+
+:::warning 使用 Color 值而非 Brush
+
+该属性仅接受 **Color** 值,若传入 **Brush** 值将抛出异常。如需从 **Brush** 转为 **Color**,可使用 **iNKORE.UI.WPF.Converters.ColorToBrushConverter** (需逆向转换) 。
+
+:::
+
+- 属性:附加属性
+- 类型:`Color`
+- 默认值:`Color.FromArgb(0x99, 0x00, 0x00, 0x00)`
+
+### ApplyBackground
+
+决定是否将 `Background` 属性应用于窗口。若将此属性设为 `False`,窗口将忽略 `Background` 并不渲染背景。通常我们会根据所用的窗口材质自动设置此属性,你也可手动控制,但该操作并不常见。
+
+- 属性:附加属性
+- 类型:`bool`
+- 默认值:`true` (当 **SystemBackdropType** 为 `None` 时为 `True`,否则为 `False`)
+
+### ApplyNoise
+
+决定是否为窗口启用噪点效果。噪点是一种细微的纹理效果,可让窗口看起来更自然、不那么平面。默认值为 `False`,因为在使用 Acrylic 背景时系统会覆盖噪点效果,故通常无需重复渲染。
+
+你也可以手动将其设为 `True` 以启用额外噪点效果。
+
+- 属性:附加属性
+- 类型:`bool`
+- 默认值:`false`
+
+### CornerStyle
+
+通过此属性设置窗口的圆角样式。可从 [WindowCornerStyle 枚举](../../definitions/helpers/styles/window-corner-style) 中选择。
+
+:::warning 系统兼容性
+
+圆角样式仅在 Windows 11 可用;在较旧系统上该设置不会生效。
+
+:::
+
+- 属性:附加属性
+- 类型:[WindowCornerStyle](../../helpers/styles/window-corner-style)
+- 默认值:`WindowCornerStyle.None`
+
+### FixMaximizedWindow
+
+决定是否对窗口应用额外的最大化修复器 (maximize fixer) 。该修复器用于修正默认窗口样式导致的最大化尺寸错误问题。
+
+该修复有时可能触发一些异常;通常这些异常是无害的,不会影响窗口的正常使用。
+
+更多信息见 [Window / Maximize fixer](%BASE_NAME%/components/dialogs/window#maximize-fixer)。
+
+- 属性:附加属性
+- 类型:`bool`
+- 默认值:`true`
+
+### ShouldDisplayManualBorder
+
+决定是否显示手动绘制的边框。手动边框由窗口绘制,遵循窗口的 `BorderBrush` 与 `BorderThickness`,从而允许自定义窗口边框样式。
+
+该属性为只读,由系统版本决定:在 Windows 11 及更高版本,DWM 会自动绘制边框;在 Windows 10 或更低版本,将显示手动边框。
+
+- 属性:附加属性 | 只读
+- 类型:`bool`
+- 默认值:`false` (在 Windows 10 或更低版本为 `True`,否则为 `False`)
+
+### ~~UseAeroBackdrop~~
+
+已废弃,请使用 **SystemBackdropType**。
+
+### ~~UseAcrylicBackdrop~~
+
+已废弃,请使用 **SystemBackdropType**。
+
+## 字段
+
+### (依赖属性)
+
+上述依赖属性各自对应一个 `DependencyProperty` 字段。
+
+## 方法
+
+### (依赖属性)
+
+对可写的附加依赖属性,类提供对应的 `Get` 与 `Set` 方法;对只读附加依赖属性,仅提供 `Get` 方法。
+
+### UpdateWindowChrome
+
+当需要更新 `WindowChrome` 时,该方法会被自动调用;你也可以手动调用以在异常情况发生后触发更新。
+
+```csharp
+public static WindowChrome UpdateWindowChrome(this Window window);
+```
+
+## 备注
+
+### 组件
+
+该类用于自定义 [Window](%BASE_NAME%/components/dialogs/window) 组件。
+
+## 另请参阅
+
+### 相关文章
+
+- [组件 / Window](%BASE_NAME%/components/dialogs/window)
+
+### Microsoft Learn
+
+- [Window Class (WPF)](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.window?view=windowsdesktop-8.0#properties)
+
+- [Materials in Windows 11](https://learn.microsoft.com/zh-cn/windows/apps/design/signature-experiences/materials)
+
+### 源代码
+
+- [GitHub | WindowHelper.cs](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Controls/Helpers/WindowHelper.cs)
\ No newline at end of file
diff --git a/data/docs/ui-wpf-modern/05. definitions/00. controls/00. primitives/01.# titlebar-button-availability/index.en-US.mdx b/data/docs/ui-wpf-modern/05. definitions/00. controls/00. primitives/01.# titlebar-button-availability/index.en-US.mdx
index d20a207..6038b4a 100644
--- a/data/docs/ui-wpf-modern/05. definitions/00. controls/00. primitives/01.# titlebar-button-availability/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/05. definitions/00. controls/00. primitives/01.# titlebar-button-availability/index.en-US.mdx
@@ -53,4 +53,4 @@ The button is enabled and visible. You can see and interact with the button.
### Source code
-- [Github | TitleBar.cs](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Controls/Primitives/TitleBar.cs)
+- [GitHub | TitleBar.cs](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Controls/Primitives/TitleBar.cs)
diff --git a/data/docs/ui-wpf-modern/05. definitions/00. controls/00. primitives/01.# titlebar-button-glyph-style/index.en-US.mdx b/data/docs/ui-wpf-modern/05. definitions/00. controls/00. primitives/01.# titlebar-button-glyph-style/index.en-US.mdx
index b4f01ec..c375e1c 100644
--- a/data/docs/ui-wpf-modern/05. definitions/00. controls/00. primitives/01.# titlebar-button-glyph-style/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/05. definitions/00. controls/00. primitives/01.# titlebar-button-glyph-style/index.en-US.mdx
@@ -49,4 +49,4 @@ This adapts the Fluent style from the Windows 11 Fluent Design System:
### Source code
-- [Github | TitleBar.cs#coming_soon](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Controls/Primitives/TitleBar.cs)
\ No newline at end of file
+- [GitHub | TitleBar.cs#coming_soon](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Controls/Primitives/TitleBar.cs)
\ No newline at end of file
diff --git a/data/docs/ui-wpf-modern/05. definitions/00. controls/00. primitives/01.# titlebar/index.en-US.mdx b/data/docs/ui-wpf-modern/05. definitions/00. controls/00. primitives/01.# titlebar/index.en-US.mdx
index 63b714f..2e63140 100644
--- a/data/docs/ui-wpf-modern/05. definitions/00. controls/00. primitives/01.# titlebar/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/05. definitions/00. controls/00. primitives/01.# titlebar/index.en-US.mdx
@@ -281,4 +281,4 @@ This class is used to customize the title bar of the [Window](%BASE_NAME%/compon
### Source code
-- [Github | TitleBar.cs](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Controls/Primitives/TitleBar.cs)
+- [GitHub | TitleBar.cs](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Controls/Primitives/TitleBar.cs)
diff --git a/data/docs/ui-wpf-modern/05. definitions/00. controls/01.# toggle-switch/index.en-US.mdx b/data/docs/ui-wpf-modern/05. definitions/00. controls/01.# toggle-switch/index.en-US.mdx
index d15c83f..85b147d 100644
--- a/data/docs/ui-wpf-modern/05. definitions/00. controls/01.# toggle-switch/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/05. definitions/00. controls/01.# toggle-switch/index.en-US.mdx
@@ -108,6 +108,6 @@ This class inherits methods from its base class **Control**.
### Source code
-- [Github | ToggleSwitch.cs](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern.Controls/Controls/Windows/ToggleSwitch/ToggleSwitch.cs)
+- [GitHub | ToggleSwitch.cs](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern.Controls/Controls/Windows/ToggleSwitch/ToggleSwitch.cs)
diff --git a/data/docs/ui-wpf-modern/05. definitions/00. controls/01.# toggle-switch/index.zh-CN.mdx b/data/docs/ui-wpf-modern/05. definitions/00. controls/01.# toggle-switch/index.zh-CN.mdx
new file mode 100644
index 0000000..8f1e635
--- /dev/null
+++ b/data/docs/ui-wpf-modern/05. definitions/00. controls/01.# toggle-switch/index.zh-CN.mdx
@@ -0,0 +1,113 @@
+# ToggleSwitch 类
+
+表示一个可在两种状态之间切换的开关控件。
+
+更多信息、设计指引与代码示例,请参阅 [Toggle switches](%BASE_NAME%/components/basic-input/toggle-switch)。
+
+## 定义
+
+- 命名空间: [iNKORE.UI.WPF.Modern.Controls](.)
+
+- 程序集: iNKORE.UI.WPF.Modern.dll
+
+- 继承: [Object](https://learn.microsoft.com/zh-cn/dotnet/api/system.object) → (...) → [Control](https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.control) → ToggleSwitch
+
+```csharp
+[ContentProperty(nameof(Header))]
+[TemplatePart(Name = nameof(HeaderContentPresenter), Type = typeof(ContentPresenter))]
+[TemplatePart(Name = nameof(SwitchKnobBounds), Type = typeof(FrameworkElement))]
+[TemplatePart(Name = nameof(SwitchKnob), Type = typeof(FrameworkElement))]
+[TemplatePart(Name = nameof(KnobTranslateTransform), Type = typeof(TranslateTransform))]
+[TemplatePart(Name = nameof(SwitchThumb), Type = typeof(Thumb))]
+[TemplateVisualState(GroupName = VisualStates.GroupCommon, Name = VisualStates.StateNormal)]
+[TemplateVisualState(GroupName = VisualStates.GroupCommon, Name = VisualStates.StateMouseOver)]
+[TemplateVisualState(GroupName = VisualStates.GroupCommon, Name = VisualStates.StatePressed)]
+[TemplateVisualState(GroupName = VisualStates.GroupCommon, Name = VisualStates.StateDisabled)]
+[TemplateVisualState(GroupName = ContentStatesGroup, Name = OffContentState)]
+[TemplateVisualState(GroupName = ContentStatesGroup, Name = OnContentState)]
+[TemplateVisualState(GroupName = ToggleStatesGroup, Name = DraggingOnState)]
+[TemplateVisualState(GroupName = ToggleStatesGroup, Name = DraggingOffState)]
+[TemplateVisualState(GroupName = ToggleStatesGroup, Name = OffState)]
+[TemplateVisualState(GroupName = ToggleStatesGroup, Name = OnState)]
+public class ToggleSwitch : Control { ... }
+```
+
+## 构造函数
+
+### ToggleSwitch()
+
+初始化 `ToggleSwitch` 的新实例。
+
+## 属性
+
+### IsOn
+
+获取或设置 `ToggleSwitch` 的开关状态 (开/关) 。
+
+- 属性:依赖属性
+
+- 类型:`bool`
+
+- 默认值:`false`
+
+### [On/Off]-[Content/ContentTemplate]
+
+默认情况下,`ToggleSwitch` 包含自动本地化的 On/Off 标签。你可以通过设置 `OnContent` 与 `OffContent` 来替换这些标签。
+
+下面示例将 On/Off 标签替换为 Show/Hide:
+
+```xml
+
+```
+
+下面示例移除了标签:
+
+```xml
+
+```
+
+你也可以通过设置 `OnContentTemplate` 与 `OffContentTemplate` 来使用更复杂的内容。
+
+### (继承)
+
+该类继承自基类 `Control` 的属性。
+
+## 事件
+
+### Toggled
+
+当 `IsOn` 属性值更改时触发该事件。
+
+- 事件类型:Routed
+
+- 委托类型:`RoutedEventHandler`
+
+### (继承)
+
+该类继承自基类 `Control` 的事件。
+
+## 方法
+
+### (继承)
+
+该类继承自基类 `Control` 的方法。
+
+
+## 另请参阅
+
+### 相关文章
+
+- [组件 / ToggleSwitch](%BASE_NAME%/components/basic-input/toggle-switch)
+
+### Microsoft Learn
+
+- [Toggle switches - Windows apps](https://learn.microsoft.com/zh-cn/windows/apps/design/controls/toggles)
+
+- [ToggleSwitch class (WinRT)](https://learn.microsoft.com/zh-cn/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.toggleswitch)
+
+### 源代码
+
+- [GitHub | ToggleSwitch.cs](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern.Controls/Controls/Windows/ToggleSwitch/ToggleSwitch.cs)
+
+
diff --git a/data/docs/ui-wpf-modern/05. definitions/00. helpers/00. styles/# backdrop-type/index.en-US.mdx b/data/docs/ui-wpf-modern/05. definitions/00. helpers/00. styles/# backdrop-type/index.en-US.mdx
index ce60672..c156dc3 100644
--- a/data/docs/ui-wpf-modern/05. definitions/00. helpers/00. styles/# backdrop-type/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/05. definitions/00. helpers/00. styles/# backdrop-type/index.en-US.mdx
@@ -27,7 +27,7 @@ None of the system backdrops will be applied. The window will remain solid.
### Mica
-The window will have a mica effect, which is a translucent background that blurs the desktop background it.
+The window will have a Mica effect, which is a translucent background that blurs the desktop background behind it.
**Value**: 2
@@ -39,11 +39,11 @@ Mica is mode aware; it supports both light and dark modes. Mica also indicates w
### Acrylic
-The window will have an acrylic effect and determine which API will be used depending on the system version, which is a translucent background that blurs the content behind it.
+The window will have an Acrylic effect and determine which API will be used depending on the system version, which is a translucent background that blurs the content behind it.
**Value**: 3
-Acrylic is a semi-transparent material that replicates the effect of frosted glass. In Windows 11, acrylic has been updated to be brighter and more translucent, allowing for a stronger contextual relationship with the visuals behind it. Acrylic is used only for transient, light-dismiss surfaces such as flyouts and context menus.
+Acrylic is a semi-transparent material that replicates the effect of frosted glass. In Windows 11, Acrylic has been updated to be brighter and more translucent, allowing for a stronger contextual relationship with the visuals behind it. Acrylic is used only for transient, light-dismiss surfaces such as flyouts and context menus.
Acrylic is mode aware; it supports both light and dark mode.
@@ -51,11 +51,11 @@ Acrylic is mode aware; it supports both light and dark mode.
### Tabbed
-The window will have a tabbed effect, which looks like mica but have deeper colors. This is often used when there's a root TabControl on the window (e.g. the Windows Explorer).
+The window will have a Tabbed effect, which looks like Mica but has deeper colors. This is often used when there's a root TabControl on the window (e.g. the Windows Explorer).
**Value**: 4
-Mica Alt (aka. Tabbed) is a variant of Mica, with stronger tinting of the user's desktop background color. You can apply Mica Alt to your app's backdrop to provide a deeper visual hierarchy than Mica, especially when creating an app with a tabbed title bar. Mica Alt is available for apps that use Windows App SDK 1.1 or later, while running on Windows 11 version 22000 or later.
+Mica Alt (aka. Tabbed) is a variant of Mica, with stronger tinting of the user's desktop background color. You can apply Mica Alt to your app's backdrop to provide a deeper visual hierarchy than Mica, especially when creating an app with a Tabbed title bar. Mica Alt is available for apps that use Windows App SDK 1.1 or later, while running on Windows 11 version 22000 or later.

@@ -131,4 +131,4 @@ If your idea is not working on other Win32 applications, it won't work on our li
### Source code
-- [Github | BackdropHelper.cs](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Helpers/Styles/BackdropHelper.cs#L18)
+- [GitHub | BackdropHelper.cs](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Helpers/Styles/BackdropHelper.cs#L18)
diff --git a/data/docs/ui-wpf-modern/05. definitions/00. helpers/00. styles/# backdrop-type/index.zh-CN.mdx b/data/docs/ui-wpf-modern/05. definitions/00. helpers/00. styles/# backdrop-type/index.zh-CN.mdx
new file mode 100644
index 0000000..a80ff1b
--- /dev/null
+++ b/data/docs/ui-wpf-modern/05. definitions/00. helpers/00. styles/# backdrop-type/index.zh-CN.mdx
@@ -0,0 +1,134 @@
+---
+description: 指定窗口材质类型。由 `WindowHelper.SystemBackdropType` 属性使用。
+---
+
+# BackdropType 枚举
+
+指定窗口材质类型。由 `WindowHelper.SystemBackdropType` 属性使用。
+
+## 定义
+
+- 命名空间: [iNKORE.UI.WPF.Modern.Helpers.Styles](.)
+- 程序集: iNKORE.UI.WPF.Modern.dll
+
+```csharp
+public enum BackdropType {...}
+```
+
+继承: [Object](https://learn.microsoft.com/zh-cn/dotnet/api/system.object) → [ValueType](https://learn.microsoft.com/zh-cn/dotnet/api/system.valuetype?view=windowsdesktop-8.0) → [Enum](https://learn.microsoft.com/zh-cn/dotnet/api/system.enum?view=windowsdesktop-8.0) → BackdropType
+
+## 枚举值
+
+### None
+
+不应用任何窗口材质,窗口保持实色。
+
+**值**:1
+
+### Mica
+
+窗口将使用 Mica 效果,表现为对桌面背景进行模糊与半透明处理的材质。
+
+**值**:2
+
+Mica 是 Windows 11 引入的一种新型不透明材质,表面会根据用户桌面背景色做细微着色。
+
+Mica 支持浅色/深色模式,并内置了针对窗口聚焦 (活动/非活动) 的状态差异。
+
+
+
+### Acrylic
+
+窗口将使用 Acrylic 效果,所用的具体 API 由系统版本决定,表现为模糊背景之上的半透明材质。
+
+**值**:3
+
+Acrylic 是一种半透明材质,模拟磨砂玻璃效果。在 Windows 11 中,Acrylic 更明亮、更透明,以便与背后的视觉内容建立更强的语境关系。Acrylic 通常用于临时、轻度消失的表面,例如弹出菜单与上下文菜单。
+
+Acrylic 支持浅色/深色模式。
+
+
+
+### Tabbed
+
+窗口将使用类似 Mica 的 Tabbed (Mica Alt) 效果,但色彩更深,通常用于窗口具有根 `TabControl` 的场景 (例如资源管理器) 。
+
+**值**:4
+
+Mica Alt (又称 Tabbed) 是 Mica 的一个变体,对用户桌面背景色做更强的着色。针对带有选项卡的标题栏应用 Mica Alt,可以提供比 Mica 更深的视觉层级。Mica Alt 在使用 Windows App SDK 1.1 及更高版本且运行于 Windows 11 版本 22000 或更高时可用。
+
+
+
+### Acrylic10
+
+使用较旧 API 实现的 Acrylic 效果。
+
+**值**:5
+
+### Acrylic11
+
+使用较新 API 实现的 Acrylic 效果。
+
+**值**:6
+
+## 备注
+
+### Acrylic10 与 Acrylic11
+
+尽管 Acrylic10 与 Acrylic11 在视觉效果上相似,但它们使用不同的 API,存在一些差异:
+
+| | Acrylic10 | Acrylic11 |
+|-------------------|----------------------------------------------------------------------|-------------------------------------------------------------------------------------|
+| 可用性 | Windows 10 与 11 (Windows 10.0.17063+) | Windows 11 (Windows 10.0.22523+) |
+| 性能 | 调整窗口大小时可能有卡顿 | 调整窗口大小时表现良好 |
+| 可定制性 | 可定制色调 (使用 ui:WindowHelper.Acrylic10Color 属性) | 不支持 |
+| 过渡 | 无 | 在切换浅/深色及聚焦/失焦时会显示过渡动画 |
+| 失去焦点时 | Acrylic 效果仍然保留 | Acrylic 效果会被临时禁用 |
+
+如上所示,两个 Acrylic 效果各有优缺点,可根据需求选择。
+
+### Mica 与 Tabbed
+
+Mica 与 Tabbed 在外观上相似,但用途不同:Mica 适用于一般窗口,Tabbed 适用于带根 `TabControl` 的窗口。
+
+下面图片展示了带选项卡的标题栏中 Mica 与 Mica Alt (Tabbed) 的差异。
+
+
+
+
+
+### 系统级特性
+
+窗口材质由系统提供并由系统管理,这意味着我们并不自行实现背景效果或对其有完全控制权。我们所能做的是请求系统对窗口应用相应的背景效果。
+
+:::danger 注意
+
+请不要要求我们做超出我们控制范围的操作。例如:提升 Acrylic10 的性能、强制对某个控件应用材质、或更改 Acrylic11 的颜色。我们无法实现这些功能。如遇窗口材质问题,请向 Microsoft 报告。
+
+如果你的想法在其他 Win32 应用中不可行,在我们的库中也不会可行。我们使用的是其他 Win32 应用同样的 API。在提出请求前,请先确认该行为在其他 Win32 应用中是否可行。
+
+:::
+
+## 另请参阅
+
+### 相关文章
+
+- [组件 / Window](%BASE_NAME%/components/dialogs/window#system-backdrops)
+
+- [定义 / WindowHelper Class](%BASE_NAME%/definitions/controls/helpers/window-helper#systembackdroptype)
+
+- [定义 / Acrylic10Helper Class](%BASE_NAME%/definitions/controls/helpers/acrylic10-helper)
+
+- [定义 / BackdropHelper Class](%BASE_NAME%/definitions/controls/helpers/backdrop-helper)
+
+### Microsoft Learn
+
+- [Mica material - Windows Apps](https://learn.microsoft.com/zh-cn/windows/apps/design/style/mica)
+
+- [Acrylic material - Windows Apps](https://learn.microsoft.com/zh-cn/windows/apps/design/style/acrylic)
+
+- [Materials in Windows 11](https://learn.microsoft.com/zh-cn/windows/apps/design/signature-experiences/materials)
+
+### 源代码
+
+- [GitHub | BackdropHelper.cs](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Helpers/Styles/BackdropHelper.cs#L18)
diff --git a/data/docs/ui-wpf-modern/05. definitions/00. helpers/00. styles/# window-corner-style/index.en-US.mdx b/data/docs/ui-wpf-modern/05. definitions/00. helpers/00. styles/# window-corner-style/index.en-US.mdx
index 1e5bd2d..1724c4a 100644
--- a/data/docs/ui-wpf-modern/05. definitions/00. helpers/00. styles/# window-corner-style/index.en-US.mdx
+++ b/data/docs/ui-wpf-modern/05. definitions/00. helpers/00. styles/# window-corner-style/index.en-US.mdx
@@ -74,8 +74,8 @@ On version 10.0.22000.100, anti-aliasing is not applied to the rounded corners a
### Microsoft Learn
-- [Apply rounded corners in desktop apps for Windows 11](https://docs.microsoft.com/en-us/windows/apps/desktop/modernize/apply-rounded-corners)
+- [Apply rounded corners in desktop apps for Windows 11](https://learn.microsoft.com/en-us/windows/apps/desktop/modernize/ui/apply-rounded-corners)
### Source code
-- [Github | CornerHelper.cs#L309](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Helpers/Styles/CornerHelper.cs#L309)
+- [GitHub | CornerHelper.cs#L309](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Helpers/Styles/CornerHelper.cs#L309)
diff --git a/data/docs/ui-wpf-modern/05. definitions/00. helpers/00. styles/# window-corner-style/index.zh-CN.mdx b/data/docs/ui-wpf-modern/05. definitions/00. helpers/00. styles/# window-corner-style/index.zh-CN.mdx
new file mode 100644
index 0000000..af23359
--- /dev/null
+++ b/data/docs/ui-wpf-modern/05. definitions/00. helpers/00. styles/# window-corner-style/index.zh-CN.mdx
@@ -0,0 +1,81 @@
+---
+description: 指定窗口的圆角样式。由 `WindowHelper.CornerStyle` 属性使用。
+---
+
+# WindowCornerStyle 枚举
+
+指定窗口的圆角样式。由 `WindowHelper.CornerStyle` 属性使用。
+
+## 定义
+
+- 命名空间: [iNKORE.UI.WPF.Modern.Helpers.Styles](.)
+
+- 程序集: iNKORE.UI.WPF.Modern.dll
+
+```csharp
+public enum WindowCornerStyle : uint {...}
+```
+
+继承: [Object](https://learn.microsoft.com/zh-cn/dotnet/api/system.object) → [ValueType](https://learn.microsoft.com/zh-cn/dotnet/api/system.valuetype?view=windowsdesktop-8.0) → [Enum](https://learn.microsoft.com/zh-cn/dotnet/api/system.enum?view=windowsdesktop-8.0) → WindowCornerStyle
+
+## 枚举值
+
+### Default
+
+让系统决定是否应用窗口圆角。
+
+*等价于 DWMWCP_DEFAULT*
+
+**值**:0
+
+### DoNotRound
+
+从不应用窗口圆角。
+
+*等价于 DWMWCP_DONOTROUND*
+
+**值**:1
+
+### Round
+
+在适当情况下应用窗口圆角。
+
+*等价于 DWMWCP_ROUND*
+
+**值**:2
+
+### RoundSmall
+
+在适当情况下应用小一些的窗口圆角。
+
+*等价于 DWMWCP_ROUNDSMALL*
+
+**值**:3
+
+## 备注
+
+要使用 Windows 11 引入的圆角特性,请查看该功能的官方说明。
+
+ (本文档日期为 2020/10/02,但实际提交于 2021/07/17。)
+
+关键常量的底层值 (例如 DWMWA_WINDOW_CORNER_PREFERENCE 及 DWM_WINDOW_CORNER_PREFERENCE 枚举) 可在包含于 Windows Insider Preview SDK 的 dwmapi.h 中找到。
+
+当窗口应用圆角时,系统会自动添加一条灰色轮廓。
+
+在版本 10.0.22000.100 中,圆角未应用抗锯齿处理,边缘会显得较为锯齿 (标准标题栏除外) 。
+
+## 另请参阅
+
+### 相关文章
+
+- [组件 / Window](%BASE_NAME%/components/dialogs/window)
+
+- [定义 / WindowHelper Class](%BASE_NAME%/definitions/controls/helpers/window-helper#cornerstyle)
+
+### Microsoft Learn
+
+- [Apply rounded corners in desktop apps for Windows 11](https://learn.microsoft.com/zh-cn/windows/apps/desktop/modernize/ui/apply-rounded-corners)
+
+### 源代码
+
+- [GitHub | CornerHelper.cs#L309](https://github.com/iNKORE-NET/UI.WPF.Modern/blob/main/source/iNKORE.UI.WPF.Modern/Helpers/Styles/CornerHelper.cs#L309)