【问题标题】:Does the WPF WebBrowser Control Implement Commands?WPF WebBrowser 控件是否实现命令?
【发布时间】:2015-05-21 14:37:24
【问题描述】:

我一直在尝试使用带有 WPF WebBrowser 控件的命令(带有 DesignMode = "on"):

Xaml(过于简单):

<Window>
    <Grid>
       <Button Command="ToggleBold"/>
       <WebBrowser />
    </Grid>
</Window>

...但是尽管WebBrowser 在我键入时接受击键(并且当我点击Ctrl+B 时将单词格式化为bold)当我单击按钮时没有任何反应。这向我表明WebBrowser 本身并没有像RichTextBox 那样实现命令。

谁能确认一下?

【问题讨论】:

    标签: c# wpf webbrowser-control


    【解决方案1】:

    我可以确认,WPF WebBrowser 控件不支持开箱即用的 WPF 命令。您需要实现一个层来处理 WPF 命令并将它们转换为相应的IHTMLDocument2::execCommand 命令。为此,您可以创建一个自定义控件(源自UserControl)并将WebBrowser 控件嵌入其中。您不能直接从WebBrowser 派生,因为它是sealed

    【讨论】:

    • 听起来是个不错的计划——尽管我不知道为什么它没有包含在 WPF 包装类中。
    • @ScottSEA,WPF 包装器在许多其他方面并不完美,例如stackoverflow.com/questions/18256886/…
    【解决方案2】:

    我不是 WPF 专家,但我知道 Webbrowser 控件与您应用中的真实浏览器相同,因此它只呈现 HTML,无法理解 WPF 或 asp.net 代码。

    【讨论】:

    • 据我了解,WebBrowser 控件包装了 ActiveX IE 控件......你会认为如果他们正在编写包装器,他们会添加 Command 功能 - 基本上是包装使用适当的 .NET Command 调用 execCommand()。只是说。
    • 我确信在 html 中没有所谓的 RichTextBox
    • 我只是说RichTextBox本身支持命令,并不是说它是一个HTML控件或以任何方式与HTML相关。
    猜你喜欢
    • 2011-07-03
    • 2011-04-25
    • 2023-03-22
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多