在xamarin上动态应用字体变化?

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

目前,我已经对应用程序进行了更改,但它们仅在创建页面后应用,但我想立即.我使用了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>

而你有一个DynamicResource,根据条件给自己分配一些值。

 Resources ["DynamicFontSize"] =Condition ? Resources ["DefaultFontSize"]:Resources ["EnlargedFontSize"];

上面的代码可以在任何地方根据任何条件,在哪里资源是 Application.Current.Resources

然后在你有以下代码的地方,这将被动态地改变。

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

对所有可绑定的属性都有效

Goodluck 如果你有疑问,请随时回复。

给TA打赏
共{{data.count}}人
人已打赏
未分类

为什么这个算法不能找到有向无环图中最长的路径?

2022-9-8 17:25:21

未分类

我尝试请求发布帖子,但错误的是无效的URI " " Rest API。

2022-9-8 17:36:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索