你能在WPF应用程序中使用jQuery吗?

3

我过去几个月一直在创建一个WPF应用程序,我想为我的应用程序添加一些动画效果。之前有人告诉我,jQuery是一个很好的用于动画的Javascript库。

问题是,在浏览了一些资料后,我发现互联网上并没有太多让我知道这是否可行的信息。

我对jQuery非常陌生,如果WPF中不支持jQuery,那么还有什么替代方案呢?

1个回答

5
从技术上讲,您可以在WPF中使用jQuery。只是可能不是您喜欢的方式。 通过Web浏览器控件,您可以从本地或远程源加载HTML、CSS和JavaScript。
请注意*我没有从头开始制作这个示例。它来自这个网站 在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);" />

请查看这篇文章,了解更多你可以做的事情。
注意事项:
这很可能不是新桌面应用程序的最佳选择。如果只是出于熟悉现有工具的原因,我建议考虑其他方法,比如学习WPF或寻找类似这个问题一个of这些的东西。
如果实际上您想要在离线应用程序中使用大量以HTML和JavaScript编写的现有代码库,则可以利用此方法回收您的现有代码库,一定要查看此方法或其他提到的方法之一,例如使用WPF动画

感谢您提供详细的答案和解决方案。我仍然不确定在XAML中使用jQuery还是Animation更好。 - Ben
根据我的经验,我建议使用XAML和Expression Blend(现在应该有免费版本)。请访问http://msdn.microsoft.com/en-us/library/cc296376(v=expression.40).aspx。 - Terrance
1
另一条路很可能会充满大量的痛苦。 - Terrance
示例代码有许多语法错误,很不清楚意图是什么。例如:public ObjectForScriptingHelper(Window1w) - Josh Noe
我没有看到“一堆语法错误”。如果您看到了具体的问题,请随时指出或编辑它(如果您有足够的声望)。我确实看到了一个转义标签,用于关闭WebBrowser标记,我已经修复了它。如果您不喜欢类名,请在评论中提供更好的名称,我很乐意更改。至于意图... OP想知道是否有一种方法让javascript和wpf通信,这是一种实现它的方法。请在下投票之前详细说明您的评论并为我提供一些上下文。谢谢。 - Terrance

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接