Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在xamarin上动态应用字体更改?_Xamarin_Xamarin.forms_Xamarin.android - Fatal编程技术网

在xamarin上动态应用字体更改?

在xamarin上动态应用字体更改?,xamarin,xamarin.forms,xamarin.android,Xamarin,Xamarin.forms,Xamarin.android,下午好。我正在研究表单中的动态大小调整和字体属性 目前,我已经对应用程序进行了更改,但这些更改仅在创建页面后应用,但我希望立即进行更改。 我使用了ForceLayout()方法,但它没有帮助,我还可以使用什么 [assembly: Dependency(typeof(ChangeFontAndroid))] namespace SpecialForcesDirectory.Droid { public class ChangeFontAndroid : IScaleFont

下午好。我正在研究表单中的动态大小调整和字体属性

目前,我已经对应用程序进行了更改,但这些更改仅在创建页面后应用,但我希望立即进行更改。 我使用了ForceLayout()方法,但它没有帮助,我还可以使用什么

    [assembly: Dependency(typeof(ChangeFontAndroid))]
namespace SpecialForcesDirectory.Droid
{
    public class ChangeFontAndroid : IScaleFont
    {
        public void Scale(float val)
        {
            var configuration = Resources.System.Configuration;
            configuration.FontScale = (float)val;
            MainActivity.AppContext.Resources.Configuration.UpdateFrom(configuration);
            MainActivity.AppContext.Resources.DisplayMetrics.ScaledDensity = configuration.FontScale * (float)DeviceDisplay.MainDisplayInfo.Density;

        }
    }
}



最简单的方法是使用

您将这些资源存储在应用程序资源中,然后在整个应用程序中使用它们。在一个位置更改这些资源将在整个应用程序中更改它们

例如,您的App.xaml中有一个双精度字体:

 <x:Double x:Key="DefaultFontSize">20</x:Double>
 <x:Double x:Key="EnlargedFontSize">30</x:Double>
上述代码可以是任何条件下的任何地方,其中的资源是
Application.Current.Resources

如果您有以下代码,则会动态更改:

<Label FontSize= {DynamicResource DynamicFontSize}
<Button FontSize= {DynamicResource DynamicFontSize}

很好的解决方案。A我想先试试。但现在在项目中超过了50页和~400个控件。不管你有多少页,它都会工作。你只需要使用动态资源:)用于应用程序编号。对我来说是的。在许多位置替换xaml的许多猴子作业。发现你的文章,在网络上,非常令人印象深刻。
<Label FontSize= {DynamicResource DynamicFontSize}
<Button FontSize= {DynamicResource DynamicFontSize}