- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我继承了一个使用 Prism MVVM 的 WPF MVVM 项目。我想在 View 上使用 Awesomium WebControl。我在 xaml 中定义了 WebControl,如下所示:
<awe:WebControl Name="taskBrowser" Source="http://localhost:59298/Tasks" Height="680" Width="680">
public MyCodeBehindConstructor()
{
{
InitializeComponent();
...
taskBrowser.DocumentReady += TaskBrowserOnDocumentReady;
}
}
private void TaskBrowserOnDocumentReady(object sender, UrlEventArgs urlEventArgs)
{
taskBrowser.DocumentReady -= TaskBrowserOnDocumentReady;
JSObject jsobject = taskBrowser.CreateGlobalJavascriptObject("jsobject");
jsobject.Bind("callNETNoReturn", false, JSHandler);
}
private void JSHandler(object sender, JavascriptMethodEventArgs args)
{
if (args.MustReturnValue)
{
Console.WriteLine("Got method call with return request");
args.Result = "Returning " + args.Arguments[0];
}
else
{
Console.WriteLine("Got method call with no return request");
}
}
最佳答案
我刚刚发布了一个新框架,它可以在 C# ViewModel 和 awesomium 之间建立所有管道。
基本上,您需要一个调用来将 View 模型链接到 IWebView,然后框架将创建反射(reflect) C# View 模型的 javascripts 对象。
它基于 knouckout.js,所以它是完整的 MVVM。
ICommand 也映射到您可以使用 knouckout 标记绑定(bind)的 javascript 方法。通过 INotityPropertyChanged 和 INotityCollectionChanged 跟踪集合和属性更改。
您可以在 github 上找到带有示例的整个项目:https://github.com/David-Desmaisons/MVVM-for-awesomium
例如:查看模型:
public class ViewModelBase : INotifyPropertyChanged
{
protected void Set<T>(ref T ipnv, T value, string ipn)
{
if (object.Equals(ipnv, value))
return;
ipnv = value;
OnPropertyChanged(ipn);
}
protected virtual void OnPropertyChanged(string pn)
{
if (PropertyChanged == null)
return;
PropertyChanged(this, new PropertyChangedEventArgs(pn));
}
public event PropertyChangedEventHandler PropertyChanged;
}
public class Person: ViewModelBase
{
public Person()
{
Skills = new ObservableCollection<Skill>();
RemoveSkill = new RelayCommand<Skill>(s=> this.Skills.Remove(s));
}
private string _LastName;
public string LastName
{
get { return _LastName; }
set { Set(ref _LastName, value, "LastName"); }
}
private string _Name;
public string Name
{
get { return _Name; }
set { Set(ref _Name, value, "Name"); }
}
public IList<Skill> Skills { get; private set; }
public ICommand RemoveSkill { get; private set; }
}
<!doctype html>
<html>
<head>
<title></title>
<script src="js/knockout.js" type="text/javascript"></script>
<script src="js/Ko_Extension.js" type="text/javascript"></script>
</head>
<body>
<input type="text" data-bind="value: Name, valueUpdate:'afterkeydown'" placeholder="First name" >
<ul data-bind="foreach: Skills">
<li><span data-bind="text:Type"></span>:<span data-bind="text:Name"></span>
<button data-bind="click: function (){$root.RemoveSkill($data)}">Remove skill</button></li>
</ul>
<div>
<h2><span data-bind="text: Name"></span></h2>
<h2><span data-bind="text: LastName"></span></h2>
</div>
<button data-bind="click: ChangeSkill">Click me</button>
</body>
</html>
IWebView mywebview = ...; //retrieve awesomium view wich loaded the HTML view
var datacontext = new Person();
AwesomeBinding.Bind(mywebview, datacontext, JavascriptBindingMode.TwoWay);
关于wpf - 如何使用 Prism MVVM 连接 Awesomium WebControl 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23507333/
我们正在将 Awesomium ( http://awesomium.com/ ) 用于一个新项目。 问题是在 JavaScript 中将一些数据保存在 localStorage 中时,它不是持久的。
我似乎找不到使用用户名和密码(http/socks4)的代理的方法。任何输入都会很棒:) 我正在使用 .net 包装器,但我想这没有任何区别。 谢谢, 约翰 最佳答案 您需要处理 WebControl
我是一名从事 Angular Awesomium 项目的 JS 开发人员 - 是否有人对如何使用 Awesomium Inspector 启用 console.log() 有明确的答案,这对我来说是必
我之前问过这个问题,但我想重新表述一下这个问题。我正在尝试为我的项目制作一个刮刀。我想让它显示链接的特定部分。链接中唯一发生变化的部分是数字。这个数字就是我想要抓取的。该链接如下所示: 如前所述,我
我用 awesomium 创建了一个 wpf 网络浏览器,但网页看起来不像 chrome 和其他浏览器那样清晰。我使用的是 visual c#。有人可以帮我解决这个问题吗? 最佳答案 在 1.6 分支
我刚开始使用 awesomium。我想了解如何更改用户代理和引荐来源网址。例如,我需要初始化 5 个 istance o awesomium webcontrol,对于它们中的每一个,我都需要不同的用
Javascript/HTML function configurator(clicked) { myGlobalObject.onLinkClicked(clicked.name);
我想用 C# 和 Awesomium 编写一个应用程序,以记住用户已登录该网站。为此,我使用以下代码: private void button1_Click(object sender, EventA
我在我的 wpf 应用程序中使用 Awesomium 浏览器控件。它从 url 加载网站,但我有问题。我的网站有一些目标为空白的 anchor 链接。但是当我单击该 anchor 标记时,没有任何反应
默认情况下,WPF 应用程序中的 awesomium 不支持缩放和平移的触摸事件: browserLeft.StylusDown += browserLeft_StylusDown; brow
所以我一直在尝试在我的一个副项目(C#,WPF 项目类型)中使用 IE 以外的东西作为我的 webcontrol,我一直在寻找替代方案并且在过去尝试过但未能实现它们. 我决定再试一次并实现 aweso
我想在我的 WPF 应用程序中使用 Awesomium 作为嵌入式网络浏览器。 我已经尝试安装最新的 Awesomium SDK (1.6.3b),以及之前的两个版本(1.6.2 和 1.6.1)。在
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 1 年前。
我正在使用 Awesomium 创建一个 headless 浏览器。我希望浏览器返回网络错误代码,所以我知道它是如何/为什么会中断的。 using (WebSession session = WebC
Go Home 我试图让Awesomium点击某个按钮,以上面的例子为例,没有ID只有一个标签 它可能没有 click()方法。 您可以尝试以下方法来检查: JSObject btn = web
我有一个 tabcontrol,在 tabcontrol 中我有两个 tabitem,它们都包含一个 awesomium Webcontrol。然而,经过一段时间的随机时间后,Webcontrols
大家好, 我正在用类中的 awesomium webcontrol 制作一个 Winform 项目。我将该控件导航到 http://www.google.com/(仅用于测试)并向其添加了一个 Doc
有没有办法在 webControl 中将 html 作为字符串加载? 类似于: webControl.Load("..."); 就像在普通的 wpf webControl 中使用的那样: webCon
我正在尝试使用外部 javascript 文件中的函数,这些文件包含在我的 html 页面中,带有“script”标签。直接在 html 页面中实现的 Javascript 函数似乎可以正常工作,但外
在这段代码中我得到了所有人的数量。这有效。现在我想从所有人中随机选出一个人,但这行不通。我在 using (person) 行收到一个 Microsoft.CSharp.RuntimeBinder.R
我是一名优秀的程序员,十分优秀!