mirror of
https://gitee.com/csharpui/CPF.git
synced 2025-04-04 23:39:26 +08:00
209 lines
7.0 KiB
C#
209 lines
7.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using CPF;
|
|
using CPF.Drawing;
|
|
using CPF.Controls;
|
|
using CPF.Shapes;
|
|
using System.Diagnostics;
|
|
using System.Threading;
|
|
using CPF.Cef;
|
|
using static CPF.Cef.Wrapper.Helpers;
|
|
|
|
namespace ConsoleApp1
|
|
{
|
|
public class Window3 : Window
|
|
{
|
|
protected override void InitializeComponent()
|
|
{
|
|
CanResize = true;
|
|
Title = "标题";
|
|
Width = 630;
|
|
Height = 417;
|
|
Background = null;
|
|
Children.Add(new WindowFrame(this, new Panel
|
|
{
|
|
Width = "100%",
|
|
Height = "100%",
|
|
Background = "#00000000",
|
|
Children =
|
|
{
|
|
//内容元素放这里
|
|
new Button
|
|
{
|
|
MarginLeft = 38f,
|
|
MarginTop = 21.9f,
|
|
Height = 29.5f,
|
|
Width = 81.6f,
|
|
Content="访问",
|
|
Commands =
|
|
{
|
|
{
|
|
nameof(Button.Click),
|
|
(s,e)=>
|
|
{
|
|
FindPresenterByName<WebBrowser>("webBrowser").Url=FindPresenterByName<TextBox>("textBox").Text;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
new TextBox
|
|
{
|
|
Bindings =
|
|
{
|
|
{
|
|
nameof(TextBox.Text),
|
|
"Url",
|
|
FindPresenterByName("webBrowser")
|
|
},
|
|
},
|
|
Height = 27,
|
|
BorderFill = "#000000",
|
|
BorderStroke = "1,Solid",
|
|
MarginLeft = 153,
|
|
MarginTop = 25,
|
|
Width = 145,
|
|
PresenterFor=this,
|
|
Classes="Single",
|
|
Name="textBox"
|
|
},
|
|
new WebBrowser
|
|
{
|
|
Bindings =
|
|
{
|
|
{
|
|
nameof(WebBrowser.Title),
|
|
"Title",
|
|
this,
|
|
BindingMode.OneWayToSource
|
|
},
|
|
},
|
|
PresenterFor=this,
|
|
Name=nameof(webBrowser),
|
|
MarginBottom=0,
|
|
MarginLeft=0,
|
|
MarginRight=0,
|
|
MarginTop=60,
|
|
Url="about:blank",
|
|
CommandContext=this,
|
|
},
|
|
new Button
|
|
{
|
|
Width = 71.7f,
|
|
MarginLeft = 337.1f,
|
|
MarginTop = 25f,
|
|
Content = "开发者工具",
|
|
Commands =
|
|
{
|
|
{
|
|
nameof(Button.Click),
|
|
(s,e)=>
|
|
{
|
|
webBrowser.ShowDev();
|
|
}
|
|
}
|
|
}
|
|
},
|
|
new Button
|
|
{
|
|
Width = 71.7f,
|
|
MarginLeft = 427f,
|
|
MarginTop = 25f,
|
|
Content = "调用JS",
|
|
Commands =
|
|
{
|
|
{
|
|
nameof(Button.Click),
|
|
async (s,e)=>
|
|
{
|
|
//var test=await FindPresenterByName<WebBrowser>("webBrowser").ExecuteJavaScript("prompt('test测试','test')");
|
|
//Debug.WriteLine(test);
|
|
//Console.WriteLine(test);
|
|
var test = await webBrowser.ExecuteJavaScript("test('test测试弹窗')");
|
|
}
|
|
}
|
|
}
|
|
},
|
|
new Button
|
|
{
|
|
Commands =
|
|
{
|
|
{
|
|
nameof(Button.Click),
|
|
nameof(NewWindow),
|
|
this,
|
|
CommandParameter.EventSender,
|
|
CommandParameter.EventArgs
|
|
},
|
|
},
|
|
Height = 26,
|
|
Width = 75,
|
|
MarginLeft = 524,
|
|
MarginTop = 21,
|
|
Content = "新窗体",
|
|
},
|
|
}
|
|
})
|
|
{
|
|
MaximizeBox = true
|
|
});
|
|
LoadStyleFile("res://ConsoleApp1/Stylesheet.css");
|
|
//加载样式文件,文件需要设置为内嵌资源
|
|
|
|
if (!DesignMode)//设计模式下不执行
|
|
{
|
|
|
|
}
|
|
}
|
|
WebBrowser webBrowser;
|
|
protected override void OnInitialized()
|
|
{
|
|
base.OnInitialized();
|
|
webBrowser = FindPresenterByName<WebBrowser>(nameof(webBrowser));
|
|
//Thread.Sleep(15000);
|
|
//WindowState = WindowState.Maximized;
|
|
webBrowser.RegisterJavascriptObject(new TestJSClass(), "testObject");
|
|
}
|
|
[JSFunction]
|
|
public string test(string p)
|
|
{
|
|
//return "test测试" + p + p1 + dateTime;
|
|
//Debug.WriteLine("test测试" + p + p1 + dateTime);
|
|
//return dateTime;
|
|
MessageBox.Show(p);
|
|
return p;
|
|
}
|
|
|
|
void NewWindow(CpfObject obj, RoutedEventArgs eventArgs)
|
|
{
|
|
new Window3().Show();
|
|
|
|
//CefRuntime.PostTask(CefThreadId.UI, new ActionTask(() =>
|
|
//{
|
|
|
|
// var Address = "http://127.0.0.1:1080";
|
|
// var rc = webBrowser.BrowserHost.GetRequestContext();
|
|
// CefValue vv = CefValue.Create();
|
|
// var dic = CefDictionaryValue.Create();
|
|
// dic.SetString("mode", "fixed_servers");
|
|
// dic.SetString("server", Address);
|
|
// var r = vv.SetDictionary(dic);
|
|
// string error;
|
|
// bool success = rc.SetPreference("proxy", vv, out error);
|
|
//}));
|
|
|
|
}
|
|
}
|
|
|
|
public class TestJSClass
|
|
{
|
|
public string Name { get; set; }
|
|
|
|
public void Test(string test, int a)
|
|
{
|
|
MessageBox.Show(test + a);
|
|
}
|
|
}
|
|
}
|