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:signalcreate'对于类型为“\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