Wpf ExecWB在哪里?

Wpf ExecWB在哪里?,wpf,webbrowser-control,Wpf,Webbrowser Control,如果我使用WPF语法: <WebBrowser Grid.Row="1" Grid.Column="1" x:Name="htmlView"></WebBrowser> 无论哪种方式,ExecWB方法都不会公开。因此,我不能将这个代码从MFC C++的CtMLVIEW派生类中导出: ExecWB(OLECMDID_PAGESETUP, OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL); 我错过什么了吗?此时,我无法实现打印预览/页面设

如果我使用WPF语法:

<WebBrowser Grid.Row="1" Grid.Column="1" x:Name="htmlView"></WebBrowser>
无论哪种方式,ExecWB方法都不会公开。因此,我不能将这个代码从MFC C++的CtMLVIEW派生类中导出:

ExecWB(OLECMDID_PAGESETUP, OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL);
我错过什么了吗?此时,我无法实现打印预览/页面设置/缩放功能,因为我无法使用ExecWB

我已经尝试从Winforms浏览器中派生我自己的类,但它仍然没有列出

多谢各位

我不明白为什么在这个问题上:

它指的是
ShowPrintDialog
,但即使没有列出

部分成功!我不知道为什么,但现在,当我使用托管Winforms版本时,我至少可以看到一些方法:

public partial class MainWindow : Window
{
    System.Windows.Forms.WebBrowser htmlView= new System.Windows.Forms.WebBrowser();

    public MainWindow()
    {
        InitializeComponent();

        formsHost.Child = htmlView;
        htmlView.Navigate("d:\\test.xml");
    }

    private void menuFilePageSetup_Click(object sender, RoutedEventArgs e)
    {
        htmlView.ShowPageSetupDialog();
    }

    private void MenuItem_Click(object sender, RoutedEventArgs e)
    {
        htmlView.ShowPrintPreviewDialog();
    }
}
但是ExecWb在管理诸如缩放之类的事情时仍然缺失。我发现:

答案之一:

但是,即使我添加了对mshtml库的引用,编译器也不允许我从HtmlDocument转换为IHtmlDocument2。最终我得到了这个:

所以现在我知道如何选择全部并再次复制到剪贴板(只要我使用winforms版本)。然而,看了这里:

似乎没有光学变焦的对手:

ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, &vZoom, NULL);

调用
ExecWb
的基本答案是:

  • 使用WinForms WebBrowser控件

  • 然后是类似于
    htmlView.Document.ExecCommand的内容

  • 传入如下命令:

    SelectAll
    Copy
    
    用于剪贴板项目

    显示打印对话等有本机方法

    唯一似乎不被支持的观点是:

    ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, &vZoom, NULL);
    
    ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, &vZoom, NULL);
    
    SelectAll
    Copy
    
    ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, &vZoom, NULL);