gpt4 book ai didi

c# - Awesomium 弹出窗口 - ShowCreatedWebView 示例

转载 作者:太空狗 更新时间:2023-10-29 21:33:39 29 4
gpt4 key购买 nike

我在 Visual Studio 2012 中使用 Awesomium 1.7.4.2 和 C# Windows Forms。我无法通过单击超链接打开弹出窗口。

我在表单中有一个 WebControl 并且 ShowCreatedWebView 正在捕获事件,但在内部我不知道如何打开一个新窗口弹出子窗口将数据传递给 POST。

我知道我必须使用 ShowCreatedWebView 并尝试使用 SDK 示例但未成功:

http://docs.awesomium.net/?tc=E_Awesomium_Core_IWebView_ShowCreatedWebView

这根本行不通!

任何人都可以在 C# windows 窗体 中给出一个例子吗?

谁能帮帮我?

最佳答案

记得在您的超链接中添加target="_blank":

<a id="foo" href="http://...." target="_blank">Test link</a>

然后您需要做的就是捕获 ShowCreatedWebView 事件,如下所示:

webControl1.ShowCreatedWebView += OnShowNewView;

internal static void OnShowNewView( object sender, ShowCreatedWebViewEventArgs e )
{
// Your link is in e.TargetURL
// You can handle it like in docs you've mentioned
}

你可以用外部浏览器打开它,像这样:

System.Diagnostics.Process.Start(e.TargetURL.ToString());

您可以像在 Awesomium 文档中那样处理它:

    internal static void OnShowNewView(object sender, ShowCreatedWebViewEventArgs e)
{
WebControl webControl = sender as WebControl;

if (webControl == null)
return;

if (!webControl.IsLive)
return;

ChildWindow newWindow = new ChildWindow();

if (e.IsPopup && !e.IsUserSpecsOnly)
{
Int32Rect screenRect = e.Specs.InitialPosition.GetInt32Rect();

newWindow.NativeView = e.NewViewInstance;
newWindow.ShowInTaskbar = false;
newWindow.WindowStyle = System.Windows.WindowStyle.ToolWindow;
newWindow.ResizeMode = e.Specs.Resizable ? ResizeMode.CanResizeWithGrip : ResizeMode.NoResize;

if ((screenRect.Width > 0) && (screenRect.Height > 0))
{
newWindow.Width = screenRect.Width;
newWindow.Height = screenRect.Height;
}
newWindow.Show();
if ((screenRect.Y > 0) && (screenRect.X > 0))
{
newWindow.Top = screenRect.Y;
newWindow.Left = screenRect.X;
}
}
else if (e.IsWindowOpen || e.IsPost)
{
newWindow.NativeView = e.NewViewInstance;
newWindow.Show();
}
else
{
e.Cancel = true;
newWindow.Source = e.TargetURL;
newWindow.Show();
}
}

关于c# - Awesomium 弹出窗口 - ShowCreatedWebView 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25890748/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com