Диалог C# WIA, показывающий раскрывающийся список размеров бумаги

Использование C# для получения изображения со сканера Canon. Используя следующий код, и он отлично работает,

 public ImageFile Scan()
 {
        ImageFile image;

        try
        {
            CommonDialog dialog = new CommonDialog();

            image = dialog.ShowAcquireImage(
                    WiaDeviceType.ScannerDeviceType,
                    WiaImageIntent.ColorIntent,
                    WiaImageBias.MinimizeSize,
                    WIA.FormatID.wiaFormatJPEG, 
                    true, 
                    true, 
                    false);

            return image;
        }
        catch (COMException ex)
        {
            if (ex.ErrorCode == -2145320939)
            {
                throw new ScannerNotFoundException();
            }
            else
            {
                throw new ScannerException("COM Exception", ex);
            }
        }
  }

Это запускает окно, как показано ниже,

введите здесь описание изображения

Скан работает нормально. Без вопросов. Но я хочу добавить в это диалоговое окно раскрывающийся список «предопределенных» размеров прямоугольника (размеры бумаги, такие как A3, A4, A5 и т. Д.), Чтобы пользователь мог выбрать подходящий размер для сканирования.

Как я могу добавить элементы управления в этот диалог через С# WIA?


person Blue Sky    schedule 06.11.2013    source источник


Ответы (1)


Установив для всех логических свойств значение false.

public ImageFile Scan()
 {
        ImageFile image;

        try
        {
            CommonDialog dialog = new CommonDialog();

            image = dialog.ShowAcquireImage(
                    WiaDeviceType.ScannerDeviceType,
                    WiaImageIntent.ColorIntent,
                    WiaImageBias.MinimizeSize,
                    WIA.FormatID.wiaFormatJPEG, 
                    false, 
                    false, 
                    false);

            return image;
        }
        catch (COMException ex)
        {
            if (ex.ErrorCode == -2145320939)
            {
                throw new ScannerNotFoundException();
            }
            else
            {
                throw new ScannerException("COM Exception", ex);
            }
        }
  }
person Usman Haider    schedule 05.08.2020
comment
Из обзора: Ответы, содержащие только код, не рекомендуются для переполнения стека, потому что они не объясняют, как это решает проблему. Пожалуйста, отредактируйте свой ответ, чтобы объяснить, что делает этот код и как он отвечает на вопрос, чтобы он был полезен для OP, а также для других пользователей с аналогичными проблемами. См.: Как написать хороший ответ?. Спасибо - person sɐunıɔןɐqɐp; 05.08.2020