У меня есть TreeView с маленькими значками, отображаемыми в шаблоне данных. Я пытаюсь сохранить Treeview как PNG, используя RenderTargetBitmap.WPF RenderTargetBitmap Отсутствующие элементы
Изображение правильно сохраняется на небольших наборах данных. Однако, если набор данных становится слишком большим, некоторые значки исключаются из окончательного изображения. Кажется, что волшебное число 200 предметов. Кажется, не имеет значения, является ли дерево глубоким или широким, после 200 предметов значки не отображаются.
Добавлено Код
Так вот мой код, который я использую для создания образа.
RenderTargetBitmap targetBitmap = new RenderTargetBitmap(
(int)_treeView.ActualWidth,
(int)_treeView.ActualHeight,
96, 96, PixelFormats.Default);
targetBitmap.Render(_treeView);
Добавлен Screen Shot
Обратите внимание на недостающие иконки перебросив на правой стороне дерева.
Теперь, если я разрушаю несколько ветвей, тем самым скрывая некоторые другие значки, тогда эти значки включены. Это похоже на RenderTargetBitmap.Render не имеет возможности отображать все значки. Или это может иметь какое-то отношение к виртуальным панелям.
Можете ли вы попробовать что-то для меня; Просто установите все изображения на изображение 2x2. У вас все еще есть ограничение на 200 предметов? –
@MeirionHughes Whoa! Интересно. В 2x2 никаких значков не отображалось. Я немного увеличил размер, а затем только несколько значков, например 10. Поэтому, когда я задал вопрос, шаблон был установлен в 100x100, поэтому я изменил его на 150x150, и все значки были отображены! Так что же происходит? –
Не знаю ... Очень странно, я соблазн сказать, что у вас есть проблемы с виртуализацией и кэшированием. Вы ничего не делаете с изображениями, например, сохраняете все в одном растровом или что-то в этом роде? –