下午好,我正在研究表格中的动态调整大小和字体属性。我正在研究表格中的动态调整大小和字体属性。
目前,我已经对应用程序进行了更改,但它们仅在创建页面后应用,但我想立即.我使用了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 如果你有疑问,请随时回复。