Это потому, что я разработал свой приложение на планшете Android, и когда я использую его на смартфоне Android, размеры всех компонентов остаются слишком большими.
Я знаю, что есть решение с помощью OnIdiom, но оно кажется слишком длинным. решение, подходящее для всех моих страниц на телефоне, а также в некоторых случаях например, слишком маленькие телефоны или слишком большие планшеты, это может работать плохо. В настоящее время я нашел решение, согласно которому применение переменной к каждому компоненту позволяет ему масштабироваться в зависимости от размера и плотности экрана.
Я хочу, чтобы это масштабирование применялось автоматически без необходимости устанавливать свойство каждого элемента управления в XAML. Однако мне нужно убедиться, что явно заданные стили или свойства для отдельных элементов управления переопределяют это масштабирование по умолчанию.
Я пробовал несколько подходов, но ни один из них не решил проблему полностью, особенно при работе с всплывающие окна, шаблоны данных и сторонние элементы управления.
Это моя собственность:
Код: Выделить всё
public static class Scaling
{
public static readonly BindableProperty IsScalingProperty =
BindableProperty.CreateAttached(
"IsScaling",
typeof(bool),
typeof(Scaling),
false,
propertyChanged: OnIsScalingChanged);
public static bool GetIsScaling(BindableObject view)
{
return (bool)view.GetValue(IsScalingProperty);
}
public static void SetIsScaling(BindableObject view, bool value)
{
view.SetValue(IsScalingProperty, value);
}
private static void OnIsScalingChanged(BindableObject bindable, object oldValue, object newValue)
{
if (bindable is View view && newValue is bool isScaling && isScaling && (oldValue == null || !(bool)oldValue))
{
ApplyScaling(view);
}
}
public static void ApplyScaling(View view)
{
EventHandler loadedHandler = null;
loadedHandler = (sender, e) =>
{
ScaleProperties(view);
view.Loaded -= loadedHandler;
};
view.Loaded += loadedHandler;
}
}
Код: Выделить всё
Класс, который масштабирование, если оно определено вручную, работает правильно, но я не знаю, является ли это лучшим способом масштабирования компонентов мауи в зависимости от размера и плотности экрана.
Спасибо за помощь!< /п>
Подробнее здесь: https://stackoverflow.com/questions/793 ... -sizes-and