将新项添加到Awesomium(右键单击)上下文菜单

时间:2013-08-01 17:58:58

标签: vb.net contextmenu customization awesomium

我有一个WPF(VB)项目,我放置了一个Awesomium浏览器控件。我可以浏览,我可以右键单击它并查看默认的右键菜单项。

我的目标是在运行时以编程方式向右键单击上下文菜单添加新的自定义项,并将其路由到某个事件以处理逻辑。

根据awesomium.com网站上的WebControlContextMenu类文档 - 我限于2个选项:

  1. 使用ContextMenuResourceKey作为密钥重新定义WebControlContextMenu应用程序资源。
  2. (完全替换默认上下文菜单。您应该将DataContext属性绑定到PlacementTarget属性,以访问WebControl。稍后您可以使用通过LatestContextData提供的[!:WebViewContext]来更新菜单的状态' s项目。)

    1. 将您自己的上下文菜单分配给ContextMenu属性。 (与之前相同,但在这种情况下,您应该提供自己的显示上下文数据。)
    2. 我尝试使用基本的ContextMenu创建一个基本的ContextMenu并添加一些项目,但我无法想象如何将此菜单添加到现有的Web Control。

      我可以发布我的代码,但到目前为止我的代码都没有。

      我从哪里开始,有一个演示可能有助于更好地理解它。任何可以给我一些想法的代码都非常感谢!

1 个答案:

答案 0 :(得分:2)

Alexey F Shevelyov:

我们的团队提出了以下解决方案来解决这个问题:

Public Sub Test() Handles Browser.ShowContextMenu
    Dim oArray(2) As MenuItem
    Dim oMenuItem As New MenuItem
    oMenuItem.Header = "Who Runs It ?!?"

    oArray(0) = oMenuItem

    Dim oMenuItem1 As New MenuItem
    oMenuItem1.Header = "Brogrammaz"

    oArray(1) = oMenuItem1

    Dim oMenuItem2 As New MenuItem
    oMenuItem2 .Header = "Get Some..."

    oArray(2) = oMenuItem2 

    Application.Current.Resources.Clear()
    Application.Current.Resources.Add(WebControl.ContextMenuPageItemsArrayRecourceKey, oArray)
    Application.Current.Resources.Add(WebControl.ContextMenuInputItemsArrayRecourceKey, oArray)
End Sub here