Xamarin.forms 如何在xamarin forms uwp项目的webview中加载自定义字体

Xamarin.forms 如何在xamarin forms uwp项目的webview中加载自定义字体,xamarin.forms,webview,custom-font,xamarin.uwp,Xamarin.forms,Webview,Custom Font,Xamarin.uwp,在加载到xamarin forms UWP项目的webview组件中的html数据中,我在加载和应用自定义字体时遇到问题。由于未加载字体,因此未将正确的字体应用于html中的文本 我正在创建一个xamarin表单应用程序,其中我使用webview视图来显示书籍中的html数据。数据是一本书中的文本,并使用一些自定义字体(如Alvi Nastaleeq)来设置文本样式。这些字体在IOS和Android版本中使用字体脸规则,但在UWP中不起作用。 字体位于UWP项目的“资源/字体”文件夹中 我曾尝试

在加载到xamarin forms UWP项目的webview组件中的html数据中,我在加载和应用自定义字体时遇到问题。由于未加载字体,因此未将正确的字体应用于html中的文本

我正在创建一个xamarin表单应用程序,其中我使用webview视图来显示书籍中的html数据。数据是一本书中的文本,并使用一些自定义字体(如Alvi Nastaleeq)来设置文本样式。这些字体在IOS和Android版本中使用字体脸规则,但在UWP中不起作用。 字体位于UWP项目的“资源/字体”文件夹中

我曾尝试在UWP中使用字体脸规则和正确的URI方案ms appx web://但它不起作用。 我也在以下帖子中讨论了这一建议: 而且也不起作用

我试过加载.woff和.ttf字体,但都不起作用

这是我在html标题中的内容:

            // this one was a try for UWP.. not working..
        @font-face {
        font-family: 'Alvi Nastaleeq';
        src: url('ms-appx-web:///Assets/Fonts/Alvi Nastaleeq.ttf');
        } 

             // theese are for IOS and Android and works..
       @font-face { 
        font-family: Alvi Nastaleeq;
        src: url('Fonts/Alvi Nastaleeq.ttf') 
            }
        @font-face { 
        font-family: Aslam;
        src: url('Fonts/Aslam.ttf') 
            }
        @font-face { 
        font-family: Al Qalam Quran Majeed;
        src: url('Fonts/Al Qalam Quran Majeed.ttf') 
            }
        @font-face { 
        font-family: Amiri-Bold;
        src: url('Fonts/Amiri-Bold.ttf') 
            }
   </style>
//这是对UWP的一次尝试。。不工作。。
@字体{
字体系列:“Alvi Nastaleeq”;
src:url('ms-appx-web:///Assets/Fonts/Alvi Nastaleeq.ttf');
} 
//theese适用于IOS和安卓系统,并能正常工作。。
@字体{
字体系列:Alvi Nastaleeq;
src:url('font/Alvi-Nastaleeq.ttf')
}
@字体{
字体系列:Aslam;
src:url('font/Aslam.ttf')
}
@字体{
字体系列:Al Qalam Quran Majeed;
src:url('font/Al-Qalam-qran-Majeed.ttf')
}
@字体{
字体系列:阿米里黑体;
src:url('font/Amiri Bold.ttf')
}

我想在xamarin forms应用程序的UWP版本中将应用于html数据的字体加载到webview视图中。

这是我使其工作的唯一方法:

  • 编码你的字体,你可以使用。选择Expert…选项,然后在CSS选项下勾选“Base 64 Encode”框。注意:如果您对结果不满意(渲染看起来很差),请重试,然后在“专家选项”下为“Truetype暗示”选择“保持现有”

  • 将@font-facesrc属性设置为以下值:

  • TTF字体:

    url(data:application/font-ttf;charset=utf-8;base64,YOUR_BASE64_STRING_HEREE) format('truetype');
    
    OPENTYPE字体:

    url(data:font/opentype;charset=utf-8;base64,YOUR_BASE64_STRING_HERE);
    
    WOFF字体:

    url(data:application/font-woff;charset=utf-8;base64,YOUR_BASE64_STRING_HERE) format(???woff???);
    

    请检查这个案例。@NicoZhu MSFT我已经检查过这个案例,并且已经试过了,不起作用,无论如何,谢谢。是本地html文件吗?@NicoZhu MSFT html数据位于一个文件中,我将其加载到一个变量中,然后将其传递到WebView。你能分享一个我可以直接测试的小样本吗?完全公开我只使用TTF进行了测试,并确认它可以工作。不是100%确定.otf/.woff谢谢。我也试过这个,但它不起作用,但我会再试一次,也许我忘了什么。