Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
3 / 3 / 1
Регистрация: 10.11.2019
Сообщений: 116

Canvas.Rende­rTransform vs Canvas.Layou­tTransform

15.08.2022, 17:49. Показов 5126. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток
При использовании настройке Canvas'а у ItemsPanelTemplate и смены у него RenderTransform на LayoutTransform туда-сюда, встал вопрос: а в чём собственно отличие. Как минимум заметил, что у RenderSize лично у меня разный, однако природу этого не понял
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.08.2022, 17:49
Ответы с готовыми решениями:

Canvas привязать к другому Canvas
Здравствуйте. Подскажите пожалуйста, как реализовать следующее: имеются две WPF формы с элементом Canvas каждая. Как сделать,...

Canvas.SetLeft + Canvas.SetRight
Ребята привет, программно заданы свойства Canvas.SetLeft + Canvas.SetTop, так же программно нужно изменить например Canvas.SetLeft на...

Переместить метку с canvas на canvas
Есть 4 canvas, на каждой - по 3 метки. Нужно реализовать программу по перетаскиванию меток с canvas на canvas. Вот моя версия: ...

2
Эксперт .NET
 Аватар для novikov.ea
1850 / 1356 / 429
Регистрация: 10.06.2011
Сообщений: 2,130
15.08.2022, 19:53
RenderTransf­orm при трансформации не оказывает влияния на другие элементы. LayoutTransf­orm при трансформации изменяет RenderSize, что соотвественно влияет на размещение других элементов. Посмотрите на кнопку Button Two на картинке
Миниатюры
Canvas.Rende­rTransform vs Canvas.Layou­tTransform  
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15955 / 11091 / 2864
Регистрация: 21.04.2018
Сообщений: 32,569
Записей в блоге: 2
15.08.2022, 20:23
Лучший ответ Сообщение было отмечено Radaman как решение

Решение

Цитата Сообщение от Radaman Посмотреть сообщение
Rende­­rTransfo­rm vs Canvas.Layou­­tTransfo­rm
Дополню ответ novikov.ea.
При рендеринге происходит запрос у всех элементов требуемых им размеров.
На основе этой информации строится макет окна или его области.
После построения макета происходит второй обход элементов, в котором происходит их визуализация по выделенным макетом областям (фреймам - Frame).
Свойство FrameworkElement.LayoutTransform задаёт трансформацию применяемую до построения макета, поэтому оно влияет на его построение и, соответственно, на размещение самого элемента и других элементов зависящих от этого размещения.
Свойство UIElement.RenderTransform определено в более базовом классе и задаёт трансформацию применяемую уже после построения макета, на втором проходе при визуализации элементов. Поэтому такая трансформация влияет на размещение самого элемента относительно выделенного ему фрейма не изменяя при этом сам макет и, следовательно, размещение других элементов.

Добавлено через 5 минут
Перевод с английского тоже несколько намекает на это:
Layout T­ransform - Преобразование макета
Rende­­r T­ransform - Преобразование визуализации (отрисовки)
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.08.2022, 20:23
Помогаю со студенческими работами здесь

Экспорт Canvas в BMP: На выходе только черный фон. + Экспорт невидимых Canvas'ов
Здравствуйте! Есть Canvas (WPF), заполняемый в процессе работы программы (в том числе изменяется и размер). Стоит задача экспортировать...

Canvas С#
Всем привет, ребят помогите пожалуйста, я бедный, ленивый студент, преподаватель задал задание нарисовать в C# Окружность с вписанной в нее...

Перемещение Canvas
Добрый день. Сегодня утром принял великое решение изучить WPF и вот первый сбой в великих планах Нарисовал Restangle , и хочу чтобы он...

Timer и Canvas
День добрый, передо мной стоит задача написать программу, в которой несколько геометрических фигур хаотично двигаются, при нажатии на...

Масштабирование canvas
Как сделать zooming у canvas нашел на мсдновских форумах такой пример.. const double ScaleRate = 1.1; private void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Оптимизация производительности Node.js с помощью кластеризации
run.dev 04.04.2025
Масштабирование приложений для обработки тысяч и миллионов запросов — обыденная задача для многих команд. Node. js, благодаря своей асинхронной событийно-ориентированной архитектуре, стал популярной. . .
Управление зависимостями в Python с Poetry
py-thonny 04.04.2025
Стандартный инструмент для установки пакетов в Python - pip - прекрасно справляется с базовыми сценариями: установил пакет командой pip install и используешь его. Но что произойдёт, когда разные. . .
Мониторинг с Prometheus в PHP
Jason-Webb 04.04.2025
Prometheus выделяется среди других систем мониторинга своим подходом к сбору и хранению метрик. В отличие от New Relic, который использует агентный подход и отправляет данные во внешнее хранилище,. . .
Пакет Context в Golang: Управление потоками и ресурсами
golander 04.04.2025
Работа с горутинами в Go часто напоминает управление непослушными детьми - они разбегаются кто куда, делают что хотят и не всегда завершаются вовремя. К счастью, в Go 1. 7 появился пакет context,. . .
Контейнеризация React приложений с Docker
Reangularity 03.04.2025
Контейнеризация позволяет упаковать приложение со всеми его зависимостями в автономный контейнер, который можно запустить на любой платформе с установленным Docker. Это существенно упрощает процессы. . .
Свой попап в SwiftUI
mobDevWorks 03.04.2025
SwiftUI, как декларативный фреймворк от Apple, предоставляет множество инструментов для создания пользовательских интерфейсов. В нашем распоряжении есть такие API как alerts, popovers, action sheets. . .
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
Метод с двумя буферами (или double buffering) или ping-pong buffering
Hrethgir 02.04.2025
Из ответов LM модели. Метод, который предполагает использование двух массивов для хранения промежуточных результатов сложения векторов, обычно применяется в сценариях, где необходимо минимизировать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер