[英]Custom Fonts Xamarin.Forms?
我只是在自定義Xamarin.Forms中的字體。 我想在整個應用程序中設置自定義字體。 我讀了許多筆記,文章等,它們定義了Xamarin.Forms中的自定義字體,但是它們僅顯示了如何將字體更改為某些控件,如標簽,按鈕等。
我想將自定義字體設置為沒有字體屬性的控件(例如Picker)。
有可能做到這一點。
如何自定義應用程序中使用的每種字體?
在沒有字體屬性的控件上,您需要為每個平台使用自定義渲染器。 不幸的是,除非Xamarin Forms公開該屬性,否則沒有其他方法。
例如,對於WinPhone上的選擇器,在CustomRenderer中
protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
switch (e.PropertyName)
{
case "Renderer":
((ListPicker)((System.Windows.Controls.Grid)this.Control).Children[0]).FullModeItemTemplate = (System.Windows.DataTemplate)App.Current.Resources["PickerItemTemplate"];
((ListPicker)((System.Windows.Controls.Grid)this.Control).Children[0]).FullModeItemTemplate = (System.Windows.DataTemplate)App.Current.Resources["ListItemTemplate"];
break;
}
}
有了這兩個資源
<DataTemplate x:Key="PickerItemTemplate">
<StackPanel MinWidth="1000">
<TextBlock Text="{Binding Data}" Opacity="{Binding Opacity}" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="ListItemTemplate">
<StackPanel Margin="0,15,0,15">
<TextBlock Text="{Binding Data}" FontSize="22" TextWrapping="Wrap"></TextBlock>
</StackPanel>
</DataTemplate>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.