У меня есть представление с фиксированной высотой и шириной, и в настоящее время я использую монитор 4k. когда я запускаю свое приложение на мониторе 1080p, оно взорвало все. у меня есть некоторые линии и пути, которые установлены на определенном поле, как и другие элементы управления.
я пробовал привязываться к ширине и высоте экрана (см. ниже), но это не сохраняло исправление размера экрана при изменении на другое разрешение. я также установил для ResizeMode значение NoResize
Height="{Binding Source={x:Static SystemParameters.PrimaryScreenHeight}, Converter={k1:RatioConverter}, ConverterParameter='0.7'}"
Width="{Binding Source={x:Static SystemParameters.PrimaryScreenWidth}, Converter={k1:RatioConverter}, ConverterParameter='0.7'}"
вот конвертер, который я получил от @berhauz
[ValueConversion(typeof(string), typeof(string))]
public class RatioConverter : MarkupExtension, IValueConverter
{
private static RatioConverter _instance;
public RatioConverter() { }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ // do not let the culture default to local to prevent variable outcome re decimal syntax
double size = System.Convert.ToDouble(value) * System.Convert.ToDouble(parameter, CultureInfo.InvariantCulture);
return size.ToString("G0", CultureInfo.InvariantCulture);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{ // read only converter...
throw new NotImplementedException();
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
return _instance ?? (_instance = new RatioConverter());
}
}
Есть ли способ исправить размер экрана для каждого разрешения, чтобы линии, пути, элементы управления не прыгали?
Margin
,Height
,Width
и т. д., с фиксированными значениями, что даст вам нежелательные результаты макета на разных устройствах. Вместо этого использование таких вещей, как правильно построенные сетки с относительным/процентным размером, будет намного лучше относиться к вам и практически не потребует кода для получения желаемого результата. - person Chris W.   schedule 12.06.2018