C #: макет кладки в Winform / WPF / UWP - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь разработать макет кладки в пользовательском элементе управления сеткой / галереей изображений в WinForm. В настоящее время мой элемент управления отображает изображения в формате квадратной сетки с быстрой визуализацией GDI. Макеты кладки, как правило, распространены в Интернете, и в Интернете доступно множество ресурсов для CSS и Javascript. Но я заметил, что некоторые приложения Windows10 также отображают макет кладки, например приложение «Фото». Еще одна вещь, которую я заметил, заключается в том, что обычно используемый макет каменной кладки в Интернете разработан в вертикальной ориентации (с переменной высотой), тогда как макет, используемый приложением Win10 Photos (а также другими подобными приложениями), использует горизонтальный макет каменной кладки с фиксированной высотой строки.

Photos App Masonry Layout

Я пытаюсь разработать подобный код (согласно скриншоту приложения "Фотографии"). Дело в том, что я не могу понять, как макет настраивает, сколько элементов показывать в каждой строке. Есть ряды, которые имеют 4 элемента, 3 элемента или иногда 5 элементов. Это чисто гибкий в зависимости от размеров / аспекта фотографии. Общая ширина панели управления / панели фиксирована.

Поддерживается ли этот тип макета приложениями UWP? Кто-нибудь знает какие-либо ссылки / руководства, которые объясняют логику этого типа макета? Есть ли у приложения «Фото» общедоступный исходный код? Я видел еще одно приложение UWP, реализующее макет такого типа, - приложение «Perfect Flickr».

1 Ответ

0 голосов
/ 10 января 2019

Кто-нибудь знает какие-либо ссылки / руководства, объясняющие логику такого типа макета?

Инструментарий UWP Community имеет элемент управления StaggeredPanel , аналогичный указанному вами. Это с открытым исходным кодом. Вы можете проверить его исходный код , чтобы узнать, как расположить его дочерние элементы.

...