Является ли чрезмерное вложение раскладок WPF (например, Grid) вычислительно дорогим? - PullRequest
15 голосов
/ 14 июня 2011

люди

Я слышал от коллеги, что я - как дизайнер, использующий Microsoft Expression Blend - должен избегать чрезмерного вложения элементов панели, потому что они вычислительно дороги.

Например, я обычно создаю главное окно с заголовком и пользовательскую строку состояния с сеткой, а затем беру верхнюю панель и помещаю сетку внутри нее, и если у меня есть сообщение внутри прямоугольника на вершине с уже сеткойпанель Я создаю еще одну сетку и т. д.

Как дизайнер, ориентированный на макет (который хочет использовать каждый экран наиболее эффективно независимо от его размеров). Я знаю, что это лучший способ сделать это, учитывая абсолютный контрольи гибкость, которая препятствует изменению размера окна "непредсказуемым" способом, oP

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

Кроме того, если у вас слишком много вычислений из-за слишком большого количества контейнеров, запрашивающих дочерние размеры перед фактическим рендерингом, это также может бытьдорогой.

У меня был некоторый предыдущий опыт работы с PyGtk, и я должен сказать, что я использовал ОДНО o панели макетов для всехмои сценарии и даже изменение размеров окон никогда не казались мне особенно дорогостоящими, за исключением случаев, когда мне нужно было пересчитать какой-то сложный рисунок холста.

Кто-нибудь имеет какой-либо опыт или знает что-нибудь об этом?

Большое спасибо за чтение

Ответы [ 2 ]

7 голосов
/ 14 июня 2011

На этот вопрос нет однозначного ответа, но очевидно, что чем больше элементов вы принимаете участие в макете, тем дольше этапы измерения и аранжировки будут приниматься за окно.В зависимости от того, какие функции каких типов Panel вы используете, он может быть более или менее дорогостоящим, но, безусловно, чем больше вы используете, тем больше накладных расходов будет при расчете компоновки.Вы можете узнать больше о том, как работает система макетов, прочитав всю статью MSDN .

В конце концов, это то, что, если вы не сошли с ума, не часто будет проблемой,Чтобы выяснить, не вызывает ли это проблем в вашем приложении, я предлагаю использовать WPF Performance Suite для тестирования производительности.

4 голосов
/ 14 июня 2011

Не стал бы беспокоиться об этом, у меня, к примеру, проблем с этим до сих пор не было. Примените здравый смысл, какие панели нужны в каком случае? Вам действительно нужна еще одна панель для достижения вашей цели или нет?

Статья MSDN по этому вопросу может представлять интерес, поскольку в ней объясняются некоторые вещи, которые не так просты: Оптимизация производительности: макет и дизайн

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...