Вы должны использовать ItemsControl
, как показано ниже. Он использует вертикальную StackPanel как панель по умолчанию для своих элементов.
<ItemsControl x:Name="imageItems">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}" Margin="5"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Установите ItemsSource
элемента ItemsControl следующим образом:
imageItems.ItemsSource = Directory.EnumerateFiles(FOLDERPATH, "*.png");
Преобразование из строки пути в ImageSource
выполняется путем преобразования встроенного типа в WPF.
Вы можете использовать другую ItemsPanel следующим образом:
<ItemsControl ...>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
...
</ItemsControl>
Если бы я сохранил выходные данные этого сценария (то есть только стандартный вывод), чтобы я мог обработать его позже, будет ли это предупреждение мешать анализу выходных данных? Более того, если выходные данные передаются другому процессу, предупреждение должно появиться на терминале, поэтому пользователь сразу увидит его.
По этим причинам, как правило, вы выводите предупреждения в stderr.
Настоящий вопрос: если бы кто-то перенаправил вывод вашего скрипта в файл, вы бы хотели, чтобы предупреждение было помещено в файл или направлено пользователю?
Если бы вы ожидаете, что пользователь предпримет какие-то действия в результате предупреждения, он должен перейти в STDERR. Если какой-либо нижестоящий скрипт может быть отключен из-за предупреждения, он должен перейти в STDERR.
Предупреждение должно поступать на stderr.
В дополнение к пунктам, представленным другими (вызывающим ошибки синтаксического анализа для последующих процессов и скрывающим ошибку от пользователя на консоли), существует проблема гибкости.
Если пользователь не хочет, чтобы предупреждение от stderr передавалось нижестоящему процессу, который анализирует stdout, ему не нужно делать ничего особенного.
your_script | downstream_process
Если пользователь хочет, чтобы предупреждение от stderr было перейти к нижестоящему процессу, который будет анализировать stdout и stderr, пользователь может использовать 2> & 1 для перенаправления stderr в stdout.
your_script 2>&1 | downstream_process
Если вы выводите и предупреждения, и любые обычные данные в stdout, у пользователя нет хорошего способа разделить предупреждения из данных, не разбирая все. Так что отправка предупреждений в stderr также дает вашему скрипту большую гибкость.