WPF WebBrowser: изменение свойств диалогового окна печати IE программно

Я пишу приложение с WPF WebBrowser управление. Это источник является результатом XML / XSLT sourse из базы данных.

в окне, которое содержит WebBrowser есть кнопка для печати с обработчика:

mshtml.IHTMLDocument2 doc = WBrowser.Document as mshtml.IHTMLDocument2;
doc.execCommand("Print", true, 0);

но в этом случае в печатном документе нет фона. Я исследовал эту проблему, и это проблема со свойством в диалоговом окне настройки страницы Internet Explorer - разрешить печать фоновых цветов и изображений.

Я пытался изменить это по этому коду:

RegistryKey regKey = Registry.CurrentUser
        .OpenSubKey("Software", true)
        .OpenSubKey("Microsoft", true)
        .OpenSubKey("Internet Explorer", true)
        .OpenSubKey("PageSetup", true);

var defaultValue = regKey.GetValue("Print_Background");
regKey.SetValue("Print_Background", "yes");

но это плохой код. Я не хочу изменять значения реестра для одного простого параметра bool.

Итак, мой вопрос: как я могу изменить этот параметр программно с помощью кода без изменения реестра?

спасибо!

2 ответов


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

однако, ответ имеет дополнительные ресурсы, касающиеся шаблонов печати и их использования из C++/win32.

Если вы открыты для использования ActiveX для печати страницы, вы можете использовать SHDocVw.WebBrowser, который затем дает вам доступ к возможности указать шаблон печати, как отмечено в ответ


вы не можете сделать это без модификации реестра.