国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題

這篇具有很好參考價值的文章主要介紹了解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、openKylin簡介

openKylin(開放麒麟) 社區(qū)是在開源、自愿、平等和協(xié)作的基礎(chǔ)上,由基礎(chǔ)軟硬件企業(yè)、非營利性組織、社團組織、高等院校、科研機構(gòu)和個人開發(fā)者共同創(chuàng)立的一個開源社區(qū),致力于通過開源、開放的社區(qū)合作,構(gòu)建桌面操作系統(tǒng)開源社區(qū),推動Linux開源技術(shù)及其軟硬件生態(tài)繁榮發(fā)展。

“開放麒麟”(openKylin)是中國首個桌面操作系統(tǒng)開發(fā)者平臺,由國家工業(yè)信息安全發(fā)展研究中心等單位聯(lián)合成立,通過開放操作系統(tǒng)源代碼的方式打造具有自主創(chuàng)新技術(shù)的開源桌面操作系統(tǒng)。

系統(tǒng)鏡像下載地址:https://www.openkylin.top/downloads/index-cn.html

二、Avalonia簡介(https://avaloniaui.net/)

Avalonia是一個跨平臺的.NET框架,用于構(gòu)建漂亮、現(xiàn)代的圖形用戶界面(GUI)。

使用Avalonia,您可以從單個代碼庫創(chuàng)建適用于Windows、macOS、 Linux、iOS、Android和Web Assembly的原生應(yīng)用程序。

Avalonia兼容所有支持.NET Standard 2.0的平臺。

解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題

?Avalonia官方支持下列平臺:

  • ?Windows 8 及更高版本(雖然它也能在Windows 7上正常工作)
  • ?macOS High Sierra 10.13 及更高版本
在Linux上,下列發(fā)行版支持Avalonia:
  • Debian 9 (Stretch) 及更高版本
  • Ubuntu 16.04 及更高版本
  • ?Fedora 30 及更高版本

Avalonia11版本的中文官方文檔地址:https://docs.avaloniaui.net/zh-Hans/docs/next/welcome

隨著信創(chuàng)、操作系統(tǒng)國產(chǎn)化替換的推廣進程,一些客戶端項目也會有需要轉(zhuǎn)移到Linux桌面的巨大的市場需求。

目前Linux下桌面程序開發(fā)的常見工具的有:QT、Electron、Blazor。而現(xiàn)在WPF有了Avalonia的加持,勢必會在開發(fā)原生跨平臺應(yīng)用時更具有優(yōu)勢和性價比。

三、VS2022安裝Avalonia開發(fā)插件

首先要安裝visual studio2022的開發(fā)工具,然后在頂部菜單==>擴展中打開管理擴展,安裝以下兩個插件(注意版本)。

解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題

四、openKylin安裝.NET Core環(huán)境

在openKylin官方網(wǎng)站上下載鏡像后,可用虛擬機進行安裝,安裝后進入到桌面,然后根據(jù)微軟官方安裝教程:https://learn.microsoft.com/zh-cn/dotnet/core/install/linux通過腳本或者下載手動安裝的方法進行安裝.NET Core環(huán)境。

需要注意的是,openKylin建立的登錄賬戶不具備root權(quán)限,所以在安裝完成后需要配置以下環(huán)境變量,否則運行dotnet時會提示沒有這個命令提示。

具體方法是打開一個終端,然后輸入?

sudo -s

輸入密碼回車,然后終端會變成root權(quán)限的終端,接著輸入下面命令后回車

vim /etc/profile

會打開一個編輯界面,我們按鍵盤的i鍵進入編輯模式,然后到文檔最后插入一行,輸入安裝完.NET Core環(huán)境后提示的PATH路徑,比如:

exprot PATH=$PATH:/home/操作系統(tǒng)登錄名/.dotnet

然后按esc,輸入:wq回車,保存退出。隨后重啟OpenKylin系統(tǒng),重啟后進入到桌面,打開終端,輸入

dotnet --info

回車,看到.NET Core的輸出信息,證明安裝和配置.NET Core環(huán)境沒有問題。

解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題

五、使用VS2022建立Avalonia桌面項目

在安裝完Avalonia插件和模板后,我們在創(chuàng)建新的項目的時候,可以直接搜索avalonia關(guān)鍵字,直接創(chuàng)建一個Avalonia C# Project,會有創(chuàng)建向?qū)?,按照向?qū)崾疽徊揭徊絼?chuàng)建完畢。

解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題

解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題

解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題

解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題

點擊Create按鈕后,稍等片刻即可完成項目創(chuàng)建,我們把創(chuàng)建的帶Desktop結(jié)尾的項目設(shè)置為啟動項目,然后我們直接F5運行項目,沒有意外的話會看到一個界面,一句英文提示。

六、解決Avalonia桌面項目在openKylin下報Default font name can't be null or empty的問題

?我們把ViewModels\MainViewModel.cs把英文的文字改成中英混合的文字。?

public string Greeting => "歡迎使用 Avalonia!";

點擊頂部菜單的生成==>發(fā)布選定內(nèi)容,目標運行時選linux-x64,然后發(fā)布項目。

解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題

?發(fā)布成功后,我們把項目復(fù)制粘貼到openKylin的環(huán)境下,然后在終端中定位到項目目錄,運行

dotnet StudyAvalonia.Desktop.dll

?會看到經(jīng)典的 Default font name can't be null or empty. 的錯誤提示:

?解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題

可見目前它對中文Linux系統(tǒng)的默認字體支持不太好,有的解決辦法是給操作系統(tǒng)設(shè)置為英文,但我們國產(chǎn)系統(tǒng)目標群體絕大部分都需要使用中文環(huán)境。因此我們在開發(fā)項目時自己指定一下項目要用的默認字體來解決這個問題。

這里我們選用阿里巴巴的免費可商用的字體==>阿里巴巴普惠體:https://www.alibabafonts.com/#/font

下載后按照下面目錄結(jié)構(gòu)放入字體文件(也可自定義其它路徑,只要代碼中的路徑做出對應(yīng)調(diào)整即可)

解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題

這里記得把字體文件設(shè)置為AvaloniaResource

解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題

?然后在Desktop項目中新建兩個類文件

解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題

?FontSettings.cs

public class FontSettings
{
    public string DefaultFontFamily = "fonts:MyDesignFontFamilies#Alibaba PuHuiTi 2.0";
    public Uri Key { get; set; } = new Uri("fonts:MyDesignFontFamilies", UriKind.Absolute);
    public Uri Source { get; set; } = new Uri("avares://StudyAvalonia.Desktop/Assets/Fonts/AliBaba", UriKind.Absolute);
}

AvaloniaAppBuilderExtensions.cs

 1 public static class AvaloniaAppBuilderExtensions
 2 {
 3     public static AppBuilder UseFontAlibaba([DisallowNull] this AppBuilder builder, Action<FontSettings>? configDelegate = default)
 4     {
 5         var setting = new FontSettings();
 6         configDelegate?.Invoke(setting);
 7 
 8         return builder.With(new FontManagerOptions
 9         {
10             DefaultFamilyName = setting.DefaultFontFamily,
11             FontFallbacks = new[]
12             {
13                 new FontFallback
14                 {
15                     FontFamily = new FontFamily(setting.DefaultFontFamily)
16                 }
17             }
18         }).ConfigureFonts(manager => manager.AddFontCollection(new EmbeddedFontCollection(setting.Key, setting.Source)));
19     }
20 }

在Program.cs中注冊一下新建的AppBuilder(.UseFontAlibaba())

 1 class Program
 2 {
 3     // Initialization code. Don't use any Avalonia, third-party APIs or any
 4     // SynchronizationContext-reliant code before AppMain is called: things aren't initialized
 5     // yet and stuff might break.
 6     [STAThread]
 7     public static void Main(string[] args) => BuildAvaloniaApp()
 8         .StartWithClassicDesktopLifetime(args);
 9 
10     // Avalonia configuration, don't remove; also used by visual designer.
11     public static AppBuilder BuildAvaloniaApp()
12         => AppBuilder.Configure<App>()
13             .UsePlatformDetect()
14             .UseFontAlibaba()
15             .WithInterFont()
16             .LogToTrace()
17             .UseReactiveUI();
18 }

?然后在編譯發(fā)布項目,復(fù)制到OpenKylin系統(tǒng)中,重新運行,就可以看到可以正常的跑起來了,界面顯示中文沒有問題了。

解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題

七、鳴謝:

https://www.raokun.top/archives/ru-he-zai-avalonia11-zhong-she-zhi-zi-ding-yi-zi-ti

https://github.com/MicroSugarDeveloperOrg/AntDesign.Avalonia

八、轉(zhuǎn)載請注明來源:https://www.cnblogs.com/wdw984/p/17717864.html文章來源地址http://www.zghlxwxcb.cn/news/detail-712134.html

到了這里,關(guān)于解決WPF+Avalonia在openKylin系統(tǒng)下默認字體問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • android 13.0 添加系統(tǒng)字體并且設(shè)置為默認字體

    在13.0系統(tǒng)定制化開發(fā)中,在產(chǎn)品定制中,有產(chǎn)品需求對于系統(tǒng)字體風格不太滿意,所以想要更換系統(tǒng)的默認字體,對于系統(tǒng)字體的修改也是常有的功能,而系統(tǒng)默認也支持增加字體,所以就來添加楷體字體為系統(tǒng)字體,并替換為系統(tǒng)默認字體, 接下來就來分析下替換默認字

    2024年02月22日
    瀏覽(130)
  • Unity TextMeshPro解決中文亂碼以及修改默認字體

    Unity TextMeshPro解決中文亂碼以及修改默認字體

    (自學unity問題產(chǎn)生及解決記錄貼) 環(huán)境及版本:windows,unity 2021.3.20f1c1 一、創(chuàng)建TextMeshPro輸入中文產(chǎn)生亂碼 問題:TextMeshPro中文顯示亂碼 解決方法: 使用系統(tǒng)自帶字體 在C:WindowsFonts路徑下找一個字體,以微軟雅黑為例,復(fù)制到unity目錄下(unity項目中,在project右鍵Show in E

    2023年04月12日
    瀏覽(101)
  • 如何在Avalonia11中設(shè)置自定義字體

    由于avalonia默認的中文字體顯示的效果不太理想,我們需要下載一些自定義的字體,來優(yōu)化UI的顯示效果。avalonia的官方文檔地址。 對我在項目中運用的自定義字體操作做一個記錄和分享,希望對大家有幫助。對應(yīng)的代碼都在基于Avalonia的GPT的AI會話項目用應(yīng)用。采用的是最新

    2024年02月15日
    瀏覽(15)
  • 解決win10特殊符號亂碼問題 顯示方塊、口?;謴?fù)系統(tǒng)字體注冊表

    解決win10特殊符號亂碼問題 顯示方塊、口?;謴?fù)系統(tǒng)字體注冊表

    圖片記錄 系統(tǒng):WIN10 LTSC U盤寫入winpe 備份好的系統(tǒng)的字體 C:/Windows/Fonts(我是虛擬機中安裝了windows系統(tǒng),備份的) 進入winpe,刪除原Fonts文件夾,復(fù)制剛備份的字體文件 1.備份好的系統(tǒng)的字體 C:/Windows/Fonts 2.打開該文件夾安裝所有Segoe 的相關(guān)字體 刪除此注冊表,然后再導(dǎo)入備

    2024年02月11日
    瀏覽(31)
  • Docker 修改默認存儲路徑,解決系統(tǒng)盤占用100%問題

    一、查看存儲路徑是否在系統(tǒng)盤 輸出結(jié)果: 二、遷移并修改配置 ?

    2024年02月15日
    瀏覽(31)
  • WPF向Avalonia遷移(三、項目結(jié)構(gòu))

    WPF向Avalonia遷移(三、項目結(jié)構(gòu))

    前提: Avalonia版本11.0.0 1.配置文件 1.1 添加配置文件 1.2 讀取配置文件? 添加System.Configuration.ConfigurationManager 2.樣式 2.1 添加樣式文件至Assets文件夾下 ?2.2 引用樣式 ? ? ? ?打開App.axaml文件,添加StyleInclude Source=\\\"你要用的樣式文件.axaml\\\"/,添加后該樣式在整個應(yīng)用生效。 3.資源

    2024年02月07日
    瀏覽(90)
  • 適用于 Linux 的 WPF:Avalonia

    適用于 Linux 的 WPF:Avalonia

    許多年前,在 WPF 成為“Windows Presentation Foundation”并將 XAML 作為 .NET、Windows 等的 UI 標記語言引入之前,有一個代號為“Avalon”的項目。Avalon 是 WPF 的代號。XAML 現(xiàn)在無處不在,XAML 標準是一個詞匯規(guī)范。 Avalonia?是一個開源項目,它顯然從 Avalon 中汲取靈感,并且對 XAML 有著毫

    2024年02月05日
    瀏覽(91)
  • WPF向Avalonia遷移(四、其他事項)

    WPF向Avalonia遷移(四、其他事項)

    開發(fā)必備 1. Avalonia項目源代碼?。。。。。。。。?!沒有源代碼,你連控件的背景色怎么改都找不著!! 2.下載你所使用的版本!?。。。。。。?!0.10.XX與0.11.XX 差很多!?。?!要看好自己用的版本號 3.如果你使用了其他的UI庫,比如說Semi.Avalonia,下載對應(yīng)版本的源代碼,改

    2024年02月07日
    瀏覽(230)
  • Avalonia UI跨平臺WPF

    Avalonia UI跨平臺WPF

    Avalonia是一個強大的框架,使開發(fā)人員能夠使用.NET創(chuàng)建跨平臺應(yīng)用程序。 它使用自己的渲染引擎繪制UI控件,確保在Windows、macOS、Linux、Android、iOS和WebAssembly等不同平臺上具有一致的外觀和行為。 官網(wǎng)鏈接: 官網(wǎng)鏈接 文檔鏈接: 中文文檔

    2024年04月27日
    瀏覽(49)
  • WPF向Avalonia遷移(一、一些通用遷移項目)

    WPF向Avalonia遷移(一、一些通用遷移項目)

    WPF:Visibility??其他參考文檔 WPF: Avalonia : WPF:Style?開發(fā)文檔 WPF: Avalonia :開發(fā)文檔 ,樣式設(shè)計加入了類似加入了CSS選擇器的語法 控件遷移 參考文檔 ? ? ? ?大多常用控件都是可以無縫遷移的,少數(shù)像RichTextBox這樣的控件,Avalonia是沒有的,但是影響不大。 其他 參考文

    2024年02月07日
    瀏覽(94)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包