【发布时间】:2014-02-24 06:36:31
【问题描述】:
过去几个月我一直在创建一个 WPF 应用程序,我想在我的应用程序中添加一点动画。之前有人告诉我 jQuery 是一个很好的用于动画的 Javascript 库。
问题是在环顾四周后,互联网上没有多少东西可以让我知道这是否可能。
我对 jQuery 很陌生,所以我不会知道太多。如果 jQuery 在 WPF 中是不可能的,那是什么?
【问题讨论】:
过去几个月我一直在创建一个 WPF 应用程序,我想在我的应用程序中添加一点动画。之前有人告诉我 jQuery 是一个很好的用于动画的 Javascript 库。
问题是在环顾四周后,互联网上没有多少东西可以让我知道这是否可能。
我对 jQuery 很陌生,所以我不会知道太多。如果 jQuery 在 WPF 中是不可能的,那是什么?
【问题讨论】:
所以从技术上讲,您可以在 WPF 中使用 jQuery。只是不是以你可能喜欢的方式。 使用web browser control,您可以从本地或远程源加载 html、css 和 javascript。
请注意*我没有从头开始制作这个示例。来自this site
在 xaml 中添加控件
<WebBrowser x:Name="wbMain" Margin="30"></WebBrowser>
在代码中
wbMain.Navigate(new Uri("c:/MyFileThatUsesJqueryAndHasJqueryAsARef.htm"));
此外,两者之间的通信也是可能的,但确实需要一些工作。 您必须创建一个具有完全信任安全性的 com 可见类
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[ComVisible(true)]
public class ObjectForScriptingHelper
{
Mainwindow mExternalWPF;
public ObjectForScriptingHelper(Window1w)
{
this.mExternalWPF = w;
}
public void InvokeMeFromJavascript(string jsscript)
{
this.mExternalWPF.tbMessageFromBrowser.Text = string.Format("Message :{0}", jsscript);
}
}
这样你就可以在你的类中创建一个实例并通过像
这样的 javascript 访问它<input type="text" id="txtMessage" />
<input type="button" value="InvokeMe" onclick="javascript:window.external.InvokeMeFromJavascript(document.getElementById('txtMessage').value);" />
请查看这篇文章,了解更多您可以做的事情。
注意事项
如果事实上您打算将 html 和 javascript 编码的现有代码库与离线应用程序一起使用,您可以利用这种方法通过各种方式回收您现有的代码库,看看这个或方法或其中之一提到的其他方法,例如使用WPF animations。
【讨论】:
public ObjectForScriptingHelper(Window1w)