C# webkit sharp正在阻止弹出窗口,如何捕获WebKitWebView创建事件?

C# webkit sharp正在阻止弹出窗口,如何捕获WebKitWebView创建事件?,c#,mono,webkit-sharp,C#,Mono,Webkit Sharp,我试着像这样捕捉事件 class ExposedWebView : WebKit.WebView { public event EventHandler Create { add { Signal signal = Signal.Lookup (this, "create"); signal.AddDelegate (value); } remove {

我试着像这样捕捉事件

class ExposedWebView : WebKit.WebView {
    public event EventHandler Create
    {
        add
        {
            Signal signal = Signal.Lookup (this, "create");
            signal.AddDelegate (value);
        }
        remove
        {
            Signal signal = Signal.Lookup (this, "create");
            signal.RemoveDelegate (value);
        }
    }
}
但我在尝试创建处理程序时出错

GLib GObject警告**:gsignal.c:2375:signal
create'对于类型为“\uu gtksharp\u 1\u ExposedWebView”的实例
0x20e8020”无效


有人知道为什么这样不行吗?有没有其他方法可以让弹出对话框在WebView中工作?

我必须登记创建web视图,而不是“创建”

ExposedWebView webView = new ExposedWebView();
webView.CreateWebView += HandleCreateWebView;

    void HandleCreateWebView (object o, CreateWebViewArgs args)
    {
        Window info = new Window("");
        info.DefaultWidth = 1000;
        info.DefaultHeight = 700;
        VBox vbox2 = new VBox();
        WebView child = new WebView();
        child.NavigationRequested += HandleNavigationRequested1;
        vbox2.PackStart(child);
        info.Add (vbox2);
        info.ShowAll();
        args.RetVal = child;
    }


class ExposedWebView : WebKit.WebView {
    public event CreateWebViewHandler CreateWebView
    {
        add
        {
            Signal signal = Signal.Lookup (this, "create-web-view", typeof(CreateWebViewArgs));
            signal.AddDelegate (value);
        }
        remove
        {
            Signal signal = Signal.Lookup (this, "create-web-view", typeof(CreateWebViewArgs));
            signal.RemoveDelegate (value);
        }
    }

    [DefaultSignalHandler (Type = typeof(WebView), ConnectionMethod = "OverrideCreateWebView")]
    protected virtual WebView OnCreateWebView (WebFrame frame)
    {
        ExposedWebView webView = new ExposedWebView();
        Value empty = Value.Empty;
        ValueArray valueArray = new ValueArray (2u);
        Value[] array = new Value[2];
        array [0] = new Value (this);
        valueArray.Append (array [0]);
        array [1] = new Value (frame);
        valueArray.Append (array [1]);
        GLib.Object.g_signal_chain_from_overridden (valueArray.ArrayPtr, ref empty);
        Value[] array2 = array;
        for (int i = 0; i < array2.Length; i++)
        {
            Value value = array2 [i];
            value.Dispose ();
        }
        return webView;
    }
}

public delegate void CreateWebViewHandler (object o, CreateWebViewArgs args);

public class CreateWebViewArgs : SignalArgs
{
    //
    // Properties
    //

    public WebFrame Frame
    {
        get
        {
            return (WebFrame)base.Args [0];
        }
    }
}
ExposedWebView webView=newexposedwebview();
webView.CreateWebView+=HandleCreateWebView;
void HandleCreateWebView(对象o,CreateWebViewArgs args)
{
窗口信息=新窗口(“”);
info.DefaultWidth=1000;
info.DefaultHeight=700;
VBox vbox2=新的VBox();
WebView子视图=新建WebView();
child.NavigationRequested+=HandleNavigationRequested1;
vbox2.PackStart(child);
添加信息(vbox2);
info.ShowAll();
args.RetVal=child;
}
类ExposedWebView:WebKit.WebView{
公共事件CreateWebViewHandler CreateWebView
{
添加
{
Signal=Signal.Lookup(这是“创建web视图”,typeof(CreateWebViewArgs));
signal.AddDelegate(值);
}
去除
{
Signal=Signal.Lookup(这是“创建web视图”,typeof(CreateWebViewArgs));
信号。移除的闸门(值);
}
}
[DefaultSignalHandler(Type=typeof(WebView),ConnectionMethod=“OverrideCreateWebView”)]
受保护的虚拟WebView OnCreateWebView(WebFrame)
{
ExposedWebView webView=新建ExposedWebView();
Value empty=Value.empty;
ValueArray ValueArray=新的ValueArray(2u);
Value[]数组=新值[2];
数组[0]=新值(此值);
Append(数组[0]);
数组[1]=新值(帧);
Append(数组[1]);
GLib.Object.g_信号_链_从_覆盖(valueArray.arrayptor,ref empty);
值[]array2=数组;
for(int i=0;i