簡體   English   中英

自定義字體Xamarin.Forms?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM