WrapPanel, не переносящийся, когда в StackPanel с Горизонтальной ориентацией

Начиная с List<> массивы использования внутренне, основная производительность должна быть тем же. Две причины, почему Список мог бы быть немного медленнее:

  • Для поиска элемента в списке метод Списка называют, который приводит в порядок взгляд в основном массиве. Таким образом, Вам нужен вызов дополнительного метода там. С другой стороны, компилятор мог бы распознать это и оптимизировать "ненужный" вызов далеко.
  • компилятор мог бы сделать некоторую специальную оптимизацию, если он знает размер массива, который он не может сделать для списка неизвестной длины. Это могло бы принести некоторое повышение производительности, если у Вас только есть несколько элементов в Вашем списке.

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

14
задан Dave Clemmer 27 June 2013 в 23:46
поделиться

2 ответа

Вы можете привязать MaxWidth WrapPanel ] к StackPanel ActualWidth .

Я не пробовал, но в основном:

24
ответ дан 1 December 2019 в 08:53
поделиться

То, что вы делаете, невозможно из-за алгоритма, который StackPanel использует при горизонтальной компоновке. По сути, он будет спрашивать каждый дочерний элемент, насколько большим он хочет быть и сколько места он требует для него.

Вам потребуется:

  1. Установить Width или MaxWidth на WrapPanel .
  2. Используйте WrapPanel ] в качестве внешней панели вместо StackPanel .
7
ответ дан 1 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: