{"id":657,"date":"2026-03-06T16:25:07","date_gmt":"2026-03-06T08:25:07","guid":{"rendered":"https:\/\/www.ienter.com.cn\/blog\/?p=657"},"modified":"2026-03-06T16:25:07","modified_gmt":"2026-03-06T08:25:07","slug":"ursa%e5%85%a8%e5%b1%80%e4%b8%bb%e9%a2%98%e6%8e%a7%e5%88%b6","status":"publish","type":"post","link":"https:\/\/www.ienter.com.cn\/blog\/2026\/03\/ursa%e5%85%a8%e5%b1%80%e4%b8%bb%e9%a2%98%e6%8e%a7%e5%88%b6.html","title":{"rendered":"Ursa\u5168\u5c40\u4e3b\u9898\u63a7\u5236"},"content":{"rendered":"<p>1. \u5220\u9664Avalonia.Themes.Fluent\u8f6f\u4ef6\u5305\uff0c\u8fd9\u662fAvalonia \u81ea\u5e26\u7684\uff0c\u5e94\u7528\u7b2c\u4e09\u65b9\u63a7\u4ef6\u548c\u4e3b\u9898\u9700\u8981\u628a\u5b98\u65b9\u7684\u5220\u9664\uff0c\u5426\u5219\u4e3b\u9898\u4f1a\u6709\u51b2\u7a81<\/p>\n<p>2. \u5b89\u88c5Ursa\u6846\u67b6\uff0c\u5305\u542b\u4e09\u4e2a\uff0cIrihi.Ursa\uff0cIrihi.Ursa.Themes.Semi\uff08Ursa \u63a7\u4ef6\u7684\u9002\u914d\u4e3b\u9898\u5305\uff09\uff0csemi.avalonia\uff08\u57fa\u7840\u4e3b\u9898\u5305\uff09\uff0c\u540e\u4e24\u4e2a\u662f\u4e3b\u9898\u76f8\u5173\u7684\uff0c\u7b2c\u4e00\u4e2a\u662f\u63a7\u4ef6\u76f8\u5173\u7684\u3002<\/p>\n<p>\u6ce8\u610f\uff1asemi.avalonia.datagrid\uff08\u6570\u636e\u8868\u683c\uff09,semi.avalonia.treedatagrid\uff08\u6811\u5f62\u8868\u683c\uff09,semi.avalonia.avaloniaedit\uff08\u4ee3\u7801\u7f16\u8f91\u5668\uff09,semi.avalonia.colorpicker\uff08\u989c\u8272\u9009\u62e9\u5668\uff09,semi.avalonia.dock\uff08\u505c\u9760\u9762\u677f\uff09\uff0c\u8fd9\u4e9b\u63a7\u4ef6\u9700\u8981\u5355\u72ec\u5b89\u88c5\uff0c\u4e0d\u5305\u542b\u5728Irihi.Ursa\u5185\u3002<\/p>\n<p>3. App.axaml\u6587\u4ef6\u4e2dStyles\u90e8\u5206\u9700\u8981\u505a\u5bf9\u5e94\u4fee\u6539<\/p>\n<p>&lt;Application.Styles&gt;<br \/>\n&lt;!-- \u5220\u9664\u8fd9\u884c --&gt;<br \/>\n&lt;!-- &lt;FluentTheme \/&gt; --&gt;<\/p>\n<p>&lt;!-- \u6dfb\u52a0\u8fd9\u4e24\u884c --&gt;<br \/>\n&lt;semi:SemiTheme Locale=\"zh-CN\" \/&gt;<br \/>\n&lt;u-semi:SemiTheme Locale=\"zh-CN\" \/&gt;<br \/>\n&lt;\/Application.Styles&gt;<\/p>\n<p>4. App.axaml\u6587\u4ef6\u4e2d\u6839\u5143\u7d20Application\u90e8\u5206\u9700\u8981\u505a\u5bf9\u5e94\u4fee\u6539\uff0c\u6dfb\u52a0 xmlns:semi\u548c xmlns:u-semi\u7684\u547d\u540d\u7a7a\u95f4\u58f0\u660e<\/p>\n<p>&lt;Application xmlns=\"https:\/\/github.com\/avaloniaui\"<br \/>\nxmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"<br \/>\nxmlns:semi=\"https:\/\/irihi.tech\/semi\" &lt;!-- \u6dfb\u52a0\u8fd9\u884c --&gt;<br \/>\nxmlns:u-semi=\"https:\/\/irihi.tech\/ursa\/themes\/semi\" &lt;!-- \u6dfb\u52a0\u8fd9\u884c --&gt;<\/p>\n<p>5. \u589e\u52a0\u5207\u6362\u4e3b\u9898\u7684\u6309\u94ae\u53ca\u4ee3\u7801\uff08\u9879\u76ee\u4e3aMVVM\uff0c\u4e8b\u4ef6\u4e5f\u540c\u6837\u91c7\u7528MVVM\u65b9\u5f0f\uff09<\/p>\n<p>&lt;!-- Views\u4e2d\u7684MainWindow.axaml \u6587\u4ef6\u589e\u52a0\u4e0b\u9762\u6309\u94ae--&gt;<br \/>\n&lt;Button Content=\"\u5207\u6362\u4e3b\u9898\" Command=\"{Binding ToggleThemeCommand}\"\/&gt;<\/p>\n<p>&lt;!-- ViewModels\u4e2d\u7684MainWindowViewModel.cs\u6587\u4ef6\u589e\u52a0\u4e0b\u9762\u4ee3\u7801--&gt;<br \/>\n\/\/ \u4e3b\u9898\u5207\u6362\u547d\u4ee4<br \/>\n[RelayCommand]<br \/>\nprivate void ToggleTheme()<br \/>\n{<br \/>\n\/\/ \u83b7\u53d6\u5f53\u524d\u5e94\u7528\u5b9e\u4f8b<br \/>\nvar app = Application.Current;<\/p>\n<p>if (app == null) return;<\/p>\n<p>\/\/ \u5207\u6362\u4e3b\u9898\u903b\u8f91<br \/>\napp.RequestedThemeVariant =<br \/>\napp.RequestedThemeVariant == ThemeVariant.Dark<br \/>\n? ThemeVariant.Light<br \/>\n: ThemeVariant.Dark;<br \/>\n}<\/p>\n<p>&lt;!-- ViewModels\u4e2d\u589e\u52a0\u547d\u540d\u7a7a\u95f4--&gt;<br \/>\nusing Avalonia; \/\/ \u7528\u4e8e Application.Current<br \/>\nusing Avalonia.Styling; \/\/ \u7528\u4e8e ThemeVariant<br \/>\nusing CommunityToolkit.Mvvm.Input;<\/p>\n<p>6. \u6784\u5efa\u5e76\u8fd0\u884c<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. \u5220\u9664Avalonia.T...<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[70,73],"class_list":["post-657","post","type-post","status-publish","format-standard","hentry","category-develop","tag-avalonia","tag-ursa"],"_links":{"self":[{"href":"https:\/\/www.ienter.com.cn\/blog\/wp-json\/wp\/v2\/posts\/657","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ienter.com.cn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ienter.com.cn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ienter.com.cn\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ienter.com.cn\/blog\/wp-json\/wp\/v2\/comments?post=657"}],"version-history":[{"count":1,"href":"https:\/\/www.ienter.com.cn\/blog\/wp-json\/wp\/v2\/posts\/657\/revisions"}],"predecessor-version":[{"id":658,"href":"https:\/\/www.ienter.com.cn\/blog\/wp-json\/wp\/v2\/posts\/657\/revisions\/658"}],"wp:attachment":[{"href":"https:\/\/www.ienter.com.cn\/blog\/wp-json\/wp\/v2\/media?parent=657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ienter.com.cn\/blog\/wp-json\/wp\/v2\/categories?post=657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ienter.com.cn\/blog\/wp-json\/wp\/v2\/tags?post=657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}