Я должен произвести предупреждения STDERR или STDOUT?

Вы должны использовать 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>
26
задан Stuart P. Bentley 16 September 2009 в 15:39
поделиться

3 ответа

Если бы я сохранил выходные данные этого сценария (то есть только стандартный вывод), чтобы я мог обработать его позже, будет ли это предупреждение мешать анализу выходных данных? Более того, если выходные данные передаются другому процессу, предупреждение должно появиться на терминале, поэтому пользователь сразу увидит его.

По этим причинам, как правило, вы выводите предупреждения в stderr.

29
ответ дан Mark Rushakoff 25 September 2019 в 07:44
поделиться

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

Если бы вы ожидаете, что пользователь предпримет какие-то действия в результате предупреждения, он должен перейти в STDERR. Если какой-либо нижестоящий скрипт может быть отключен из-за предупреждения, он должен перейти в STDERR.

1
ответ дан 28 November 2019 в 07:35
поделиться

Предупреждение должно поступать на stderr.

В дополнение к пунктам, представленным другими (вызывающим ошибки синтаксического анализа для последующих процессов и скрывающим ошибку от пользователя на консоли), существует проблема гибкости.

Если пользователь не хочет, чтобы предупреждение от stderr передавалось нижестоящему процессу, который анализирует stdout, ему не нужно делать ничего особенного.

your_script | downstream_process

Если пользователь хочет, чтобы предупреждение от stderr было перейти к нижестоящему процессу, который будет анализировать stdout и stderr, пользователь может использовать 2> & 1 для перенаправления stderr в stdout.

your_script 2>&1 | downstream_process

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

6
ответ дан 28 November 2019 в 07:35
поделиться
Другие вопросы по тегам:

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