2017-04-08 4 views
2

ユーザーの携帯電話のフォントサイズが上記のメディアに変更された場合、私が作成したAppが乱れて見えることがあります。同じ質問のポイントにはなりません。 可能であればPCLクラスでそれをやりたいと思っています。私にとって最も面白いプラットフォームはアンドロイドですので、アンドロイドに固有の修正ができます。そこで問題は、私はこのケースで23で私のフォントサイズを上書きからシステムを防ぐ行う方法です明確にすることがシステムのFontSizeの変更がXamarinアプリケーションのサイズに影響しないようにする

<Label Text="STORE" FontSize="23" HeightRequest="40" WidthRequest="212" VerticalTextAlignment="Center" HorizontalTextAlignment="Center"></Label> 

:あなたが参照を取得することができますので、ここで は私のXAMLコードのサンプルですか?

ありがとうございました

答えて

0

この本の第5章の項目はありますか? https://developer.xamarin.com/guides/xamarin-forms/creating-mobile-apps-xamarin-forms/

正確な答えではありませんが、何をしようとしているのかに応じて、「最大」フォントサイズを許可するように章の最後に例を使用できる場合があります。すべてPCL内からのものです。

しかし、フォントを大きなサイズに調整できないことは、アクセシビリティの問題を示す可能性があります。

0

Androidでアクセシビリティフォントのスケーリングを無効にする方法についてはまだ苦労している方にお勧めします。 あなたはこのようにラベル、ボタンと共通の入力コントロールのカスタムレンダラを作成する必要があります。

Xamarinピッカーコントロールの
using Xamarin.Forms; 
using Xamarin.Forms.Platform.Android; 

[assembly: ExportRenderer(typeof(Label), typeof(MyApp.Droid.Renderers.LabelRendererDroid))] 
namespace MyApp.Droid.Renderers 
{ 
    class LabelRendererDroid : LabelRenderer 
    { 
     protected override void OnElementChanged(ElementChangedEventArgs<Label> e) 
     { 
      base.OnElementChanged(e); 
      if (e.NewElement == null) return; 
      Control.SetTextSize(Android.Util.ComplexUnitType.Dip, (float)e.NewElement.FontSize); 
     } 
    } 
} 

は一切のFontSizeプロパティが存在しないので、我々は、Appクラスに追加することができます。

public static double NormalFontSize => Device.GetNamedSize(NamedSize.Medium, typeof(Picker)); 
その後、

とピッカーレンダラでそれを活用:それはAVAないよう

Control.SetTextSize(Android.Util.ComplexUnitType.Dip, (float)App.NormalFontSize); 

はまた、このNormalFontSizeプロパティを変更することにより、我々は、ピッカーのためにどんな希望するフォントサイズを設定することができますレンダラーなしでilable。

関連する問題