Почему внешний вид WPF XAML на других машинах выглядит иначе?

Я написал приложение WPF C #, и каждый элемент интерфейса настраивается на полях, например:

<TabItem x:Name="ClipboardItem" FontSize="15" FontFamily="Century Gothic"  Height="60" Header="     
 Multi Clipboard" Background="#2a2a29" Foreground="#e7e8ea" Margin="-4,-7,-57,8">

На моем компьютере все выглядит хорошо и именно так, как я хотел. Странная вещь бывает с другими ПК. Например, на другом элементе PC2 назовем его A выглядит иначе и заезжает, но на другом элементе PC3 A выглядит точно так же, как на моем ПК, но другой элемент B выглядит совершенно иначе. Кстати, на других ПК некоторые элементы такие же, как и должны быть, а некоторые - нет. Это оконное приложение с жестко заданной высотой и длиной. Не могли бы вы сказать мне, как это исправить?


person Michał Stasiewicz    schedule 02.01.2021    source источник
comment
Позиционирование элементов в WPF с использованием полей никогда не было хорошей идеей. Попробуйте использовать элемент управления сеткой или другую панель макета.   -  person Peregrine    schedule 02.01.2021
comment
Вы используете семейство шрифтов, которого нет в стандартном списке шрифтов Windows Шрифт Windows 10 список. если Century Gothic отсутствует на другом ПК, окна будут заменены другим шрифтом, и метрики этого шрифта вызовут изменение макета, поскольку ширина слов (в пикселях) будет изменяться в зависимости от семейства шрифтов. Вот почему @Peregrine комментирует лучший курс.   -  person Jeff    schedule 02.01.2021


Ответы (1)


Прежде всего. компьютеры могут иметь множество различных разрешений и соотношений сторон. так что если вы хотите уместить их все. используйте GridView или ViewBox (есть еще кое-что, но они хороши для начинающих). и не рекомендуется использовать поля для большинства элементов, если они не маленькие и в углу, опять же, не используйте их.

используйте что-нибудь подходящее вместо HorizontalAlignment = Stretch

<GridView HorizontalAlignment="Stretch" > 
   <TabItem x:Name="ClipboardItem" FontSize="15" FontFamily="Century Gothic"  
   Height="60" Header=" Multi Clipboard" Background="#2a2a29" 
   Foreground="#e7e8ea">
</GridView>

Узнайте о представлениях сетки, прежде чем пробовать этот код https://docs.microsoft.com/en-us/dotnet/desktop/wpf/controls/gridview-overview?view=netframeworkdesktop-4.8

если вы хотите сохранить соотношение сторон, используйте окно просмотра: https://docs.microsoft.com/en-us/dotnet/desktop/wpf/controls/gridview-overview?view=netframeworkdesktop-4.8

Еще одна вещь, о которой следует помнить, что все компьютеры, на которых вы тестируете, должны использовать одну и ту же версию .Net Framwork или самую последнюю.

person janithcooray    schedule 05.01.2021