-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
|
||||||
1 | ||||||
Cross resolution application, adaptive UI design. Не получается в WPF. Как сделать?16.08.2018, 13:42. Показов 1069. Ответов 17
Всем привет.
Пытаюсь "построить" простенький UI для разрешения мин: 1024x768 и макс: 1920x108. Картинка ведет себя "прилично". Остальное из рук вон плохо. Проект прикреплен. Вопрос: Как добиться чтобы controls не "слетали" со своих мест после изменения разрешения. Спасибо.
0
|
16.08.2018, 13:42 | |
Ответы с готовыми решениями:
17
Проектирование Design & Exception Handling Application Block WPF: Material Design Как открыть приложение wpf browser application ? Как сделать responsive design |
879 / 558 / 291
Регистрация: 21.11.2012
Сообщений: 1,553
|
||||||
16.08.2018, 17:58 | 2 | |||||
вы задаете фиксированные размеры элементам и удивляетесь почему они не подстраиваются под новое разрешение? Используйте колонки для грида. избавьтесь от таких отступов
1
|
Модератор
|
||||||
12.11.2018, 15:26 | 3 | |||||
Без мелких нюансов.
1
|
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
|
|
12.11.2018, 15:52 [ТС] | 4 |
Я гляну, вечером. Спасибо.
Добавлено через 9 минут Меня даже больше интересует реакция Canvas и controls на нем. Панели с кнопками внизу, мы почти сразу же решили с помощь Grid и разбивки на "клетки".
0
|
Модератор
|
|
12.11.2018, 16:02 | 5 |
У Вас в XAML нет Canvas - о чём Вы пишите?
Canvas - это панель для позиционного расположения элементов и они не должны реагировать на изменения общих размеров панели. В этом весь смысл панели это типа. Добавлено через 3 минуты Я не стал возить, но более правильно было бы объединить верхнюю и нижнюю кнопки и рисунок одной ракеты в единый шаблон. Рисунок тоже должен быть один, а цифра рисоваться на нём отдельным элементом. Но это в редакторе картинок надо возиться. Будет время - доделаю.
0
|
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
|
|
12.11.2018, 16:03 [ТС] | 6 |
Простите, я думаю о том проекте, что вызвал "бурную" дискуссию здесь, яйца и помидоры. Там был
Canvas . А здесь Image из ресурсов.Я же говорил выложу отдельно. Это нет проект. Хотя цель схожая.Тоже полезно будет посмотреть. Спасибо.
0
|
Модератор
|
||||||
12.11.2018, 17:23 | 8 | |||||
Вот пример реализации с шаблонам. Такая реализация лучше. Используется единый рисунок без подписи. Подпись делает TextBlock. Все элементы шаблоны обёрнуты в ViewBox для пропорционально изменения размеров.
0
|
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
|
|
12.11.2018, 19:23 [ТС] | 9 |
Элд Хасп,
Пролистываю " модернизацию"... В RootGrid, 3 Column определены в коде, две крайние, -нет. Вижу, что так можно. Я все до одной определяю.
0
|
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
|
|
12.11.2018, 19:51 [ТС] | 11 |
0
|
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
|
||||||
12.11.2018, 20:03 [ТС] | 13 | |||||
0
|
Модератор
|
|
12.11.2018, 20:11 | 14 |
Я не пойму что Вы под кодом имеете ввиду.... Кода C# - нету. CB - пустой. XAML - в нём 5 колонок заданы. Крайние без явного задания ширины (по умолчанию это одинарная ширина), три средние с двойной шириной.
Дизайнер? Конструктор? В нём так же 5 колонок как и в XAML.
0
|
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
|
|||||||||||
12.11.2018, 20:22 [ТС] | 15 | ||||||||||
Под кодом ес-но XAML код. Все понял, в коде 5 в Дизайнере 5. 3 с определением ширины, два без.
Добавлено через 2 минуты
Потом
0
|
Модератор
|
||||||
12.11.2018, 20:43 | 16 | |||||
Так как три элемента единообразны: две кнопки, один рисунок, один текст; то создаю шаблон для отображения такого элемента. Шаблон определяю через стиль для Label.
Для идентификации, элементов - "ракет" (в данном случае - номер), нужна привязка к какому-то источнику. Допустим, та же кнопка должна знать с какой ракетой ей "работать". Так как VM не определена, то не стал излишне усложнять и привязал свойства Tag кнопок и Text текстблока к Tag родительского элемента (TemplatedParent). При объявлении Label с этим шаблоном в Tag указываю номер ракеты (можно любой текст) и этот номер будет через текстблок выводится на корпусе ракеты и так же он будет в Tag кнопок. В обработчике (а они общие для кнопок) проверяя Tag кнопки вызвавшей событие мы можем определить в какой ракете эта кнопка.
0
|
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
|
|
12.11.2018, 20:59 [ТС] | 17 |
Кнопки "дышат" потому-что в grid и во ViewBox. Тут понятно.
А вот Labels "дышат", они же просто в Rootgrid определены. Интересно...
0
|
Модератор
|
|
12.11.2018, 21:34 | 18 |
В лейбле только элементы шаблона. Сами размеры определены по размерам ячейки Grid - режим по умолчанию strech.
ViewBox потребовались, что бы не заниматься конвертацией размеров шрифтов. Остальные размеры элементов без проблем будут меняться и без ViewBox, а вот размер шрифта трудно к чему-то привязать. Замените ViewBox на обычный Grid и посмотрите как изменится поведение.
0
|
12.11.2018, 21:34 | |
12.11.2018, 21:34 | |
Помогаю со студенческими работами здесь
18
ColorDialog в WPF Application Как сделать чтобы окна Form1 и Form1(Design) открывались автоматически? Отправка параметров по нажатию на кнопку в wpf application Adobe PDF Reader COM Component in a WPF application Сменить цвет BorderBrush на кнопке в WPF Application Delta Design - наш ответ Altium Design Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |