Member 13569324 Ответов: 2

Как сделать отзывчивое приложение WPF?


Я взял 4 столбца и 5 строк в своем приложении WPF,но когда я максимизирую размер главного окна, пространство между строками также увеличивается.Итак, как сделать страницу отзывчивой в приложении WPF(xaml), чтобы в строках было меньше места и пользовательский интерфейс выглядел хорошо.

Ожидая положительного ответа.
Заранее спасибо.

Что я уже пробовал:

Я должен был уменьшить высоту пространства между рядами, но все равно столкнулся с проблемой.

2 Ответов

Рейтинг:
1

________________

Начните использовать контейнеры типа "DockPanel" и "WrapPanel" - и комбинируйте их с разной" вертикально-горизонтальной " ориентацией, они имеют автоматическую компоновку и т. д. В WPF предыдущий опыт Winform практически бесполезен...
Думай по-другому! :-)


Member 13569324

Я уже использую панель grid в приложении.

________________

Хорошо, но StackPanel автоматически организует внутренние элементы управления. Согласен, дизайн будет совершенно другим, но это решит проблему с полями и тонкой настройкой якорей....

Рейтинг:
1

PureNsanity

Сначала я должен разобраться с терминологией... Вы используете responsive в веб-смысле, и, кроме того, поведение, которое вы описываете, соответствует этому определению responsive.

Когда речь идет в области WPF, responsive в основном используется для описания потоковой передачи и реагирования на действия пользователя.

Размер по умолчанию в сетках WPF является относительным, что означает, что ему присваивается значение относительно высоты сетки и это взвешенное значение. По умолчанию определение строки получает взвешенное значение 1. Таким образом, если у вас есть 5 строк и вы оставляете их по умолчанию, каждая строка получает 1/(1+1+1+1+1) = 1/5 от общей высоты.

Теперь предположим, что вы изменили некоторые из этих относительных значений и присвоили последней строке значение 2. Это означает, что общий вес высоты сетки теперь равен 6, а строки 1-4 получат 1/(1+1+1+1+2)=1/6 из высоты и ряда 5 получится 2/6.

RowDefinition также может принимать высоту "Auto", которая будет автоматически определять размер высоты в зависимости от содержимого. Судя по твоему описанию, это именно то, что тебе нужно.

Он также имеет свойство MinHeight и MaxHeight, если вы просто хотите избежать его превышения или понижения определенного значения.

Авто и относительные высоты могут быть объединены. Очень распространенным примером присвоения высоты является что-то вроде:

<Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="*"/>
</Grid.RowDefinitions>

Это означает, что сделайте строки 1 - 4 автоматическими, а последняя строка заполнит оставшееся свободное пространство.