如何在 Xamarin Forms iOS 中显示带有小型大写字体样式的标签?
How to display a label with small caps font style in Xamarin Forms iOS?
我的 Xamarin Forms 应用程序的设计师为标签字段指定了小型大写字母。关于如何在 Android 的 Xamarin 中执行此操作有几个讨论,但我找不到 iOS.
的任何内容
我知道我需要一个自定义渲染器并找到了一个很好的讨论 here,但是在将那篇文章中的 Swift 代码转换为 C# for Xamarin iOS 时遇到了挑战.
这是代码:
let systemFont = UIFont.systemFont(ofSize: 24.0, weight: UIFontWeightLight)
let smallCapsDesc = systemFont.fontDescriptor.addingAttributes([
UIFontDescriptorFeatureSettingsAttribute: [
[
UIFontFeatureTypeIdentifierKey: kUpperCaseType,
UIFontFeatureSelectorIdentifierKey: kUpperCaseSmallCapsSelector
]
]
])
let font = UIFont(descriptor: smallCapsDesc, size: systemFont.pointSize)
我知道我会在我的 OnElementChanged 方法中添加一些东西,但是 FontDescriptor 没有 addingAttributes 方法或 Attributes 集合,所以我很难添加额外的属性。
the FontDescriptor does not have an addingAttributes method or an Attributes collection
您正在寻找 UIFont.FontDescriptor.CreateWithAttributes
方法。
示例:
var systemFont = UIFont.SystemFontOfSize(24, UIFontWeight.Light);
var attributes = new UIFontAttributes(
new UIFontFeature(CTFontFeatureUpperCase.Selector.UpperCaseSmallCaps),
new UIFontFeature(CTFontFeatureLowerCase.Selector.LowerCaseSmallCaps)
);
var smallCapsDesc = systemFont.FontDescriptor.CreateWithAttributes(attributes);
var font = UIFont.FromDescriptor(smallCapsDesc, systemFont.PointSize);
我的 Xamarin Forms 应用程序的设计师为标签字段指定了小型大写字母。关于如何在 Android 的 Xamarin 中执行此操作有几个讨论,但我找不到 iOS.
的任何内容我知道我需要一个自定义渲染器并找到了一个很好的讨论 here,但是在将那篇文章中的 Swift 代码转换为 C# for Xamarin iOS 时遇到了挑战.
这是代码:
let systemFont = UIFont.systemFont(ofSize: 24.0, weight: UIFontWeightLight)
let smallCapsDesc = systemFont.fontDescriptor.addingAttributes([
UIFontDescriptorFeatureSettingsAttribute: [
[
UIFontFeatureTypeIdentifierKey: kUpperCaseType,
UIFontFeatureSelectorIdentifierKey: kUpperCaseSmallCapsSelector
]
]
])
let font = UIFont(descriptor: smallCapsDesc, size: systemFont.pointSize)
我知道我会在我的 OnElementChanged 方法中添加一些东西,但是 FontDescriptor 没有 addingAttributes 方法或 Attributes 集合,所以我很难添加额外的属性。
the FontDescriptor does not have an addingAttributes method or an Attributes collection
您正在寻找 UIFont.FontDescriptor.CreateWithAttributes
方法。
示例:
var systemFont = UIFont.SystemFontOfSize(24, UIFontWeight.Light);
var attributes = new UIFontAttributes(
new UIFontFeature(CTFontFeatureUpperCase.Selector.UpperCaseSmallCaps),
new UIFontFeature(CTFontFeatureLowerCase.Selector.LowerCaseSmallCaps)
);
var smallCapsDesc = systemFont.FontDescriptor.CreateWithAttributes(attributes);
var font = UIFont.FromDescriptor(smallCapsDesc, systemFont.PointSize);