Xamarin CSS使您可以使用类似于CSS的语法指定font-family
。我需要设置一个自定义字体。通常看起来像这样:
<Style x:Key="RockwellFontLabel" TargetType="Label">
<Setter Property="FontFamily">
<OnPlatform x:TypeArguments="x:String">
<On Platform="Android" Value="RockwellStd.otf#RockwellStd.otf" />
<On Platform="iOS" Value="RockwellStd" />
</OnPlatform>
</Setter>
</Style>
...
<Label Style="{StaticResource RockwellFontLabel}" Text="I AM TEXT"/>
虽然详细,但确实有效。但是Xamarin CSS承诺的更多。我可以做一些事情,例如只用一个“ CSS”规则为整个部分设置字体系列,对吗?是吗?!
#myElement * {
font-family: 'RockwellStd';
color: hotpink;
}
但这只能设置颜色。它根本没有设置我的自定义字体系列。显然,在Android上,该字体位于/Assets/RockwellStd.otf
下,并且将构建动作设置为AndroidAsset
和/Resources/Fonts/RockwellStd.otf
,并且构建动作为BundleResource
。
是否可以在Xamarin CSS中使用自定义字体?如果可以,怎么办?
答案 0 :(得分:2)
因此,关于CSS的问题非常有效,这将是在Xamarin Forms中使用样式>应用于集合中的所有子项的最大优势之一。
但是Xamarin Forms中CSS的当前状态(截至撰写时)仍然受到限制。从这个意义上讲,仍然不可能针对CSS样式内的每个平台针对自定义字体定义定位可能的StaticResource
。
将该问题提到当时的Xamarin Forms PM(https://twitter.com/Depechie/status/1001944818543718400)David Ortinau。
因此,目前我们只能通过一些xaml样式解决此问题,建议您为每个平台的自定义字体保留原始的StaticResource
样式定义。但是,不要将其应用到常规App.xaml
内,而是尝试仅将其设置在仅希望其出现的View或UI元素的ResourceDictionary
属性内。
如果您尝试在Implicit Styling
中使用ResourceDictionary
,则无需在每个Label元素中添加Style="{StaticResource RockwellFontLabel}"
标签。