您可以在WPF应用程序中使用jQuery吗?

Ben*_*Ben 3 .net c# wpf jquery

在过去的几个月中,我一直在创建WPF应用程序,我想在我的应用程序中添加一些动画。在此之前,我被告知jQuery是一个很好的动画Javascript库。

问题是,环顾四周后,互联网上没有太多东西让我知道这是否可行。

我对jQuery非常陌生,所以我不会了解很多。如果在WPF中无法使用jQuery,那是什么?

Ter*_*nce 5

因此,从技术上讲,您可以在WPF中使用jQuery。只是没有您可能会喜欢的方式。使用网络浏览器控件,您可以从本地或远程源加载html,css和javascript。

请注意*我不是从头开始制作此示例的。它来自这个网站

在xaml中添加控件

<WebBrowser x:Name="wbMain" Margin="30"></WebBrowser>
Run Code Online (Sandbox Code Playgroud)

和在代码中

wbMain.Navigate(new Uri("c:/MyFileThatUsesJqueryAndHasJqueryAsARef.htm"));
Run Code Online (Sandbox Code Playgroud)

两者之间的通讯也是可能的,但确实需要一些工作。您将必须创建一个具有完全信任安全性的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);
    }

}
Run Code Online (Sandbox Code Playgroud)

这样,您将在类中创建一个实例,并通过javascript之类的方式访问它

<input type="text" id="txtMessage" />
<input type="button" value="InvokeMe" onclick="javascript:window.external.InvokeMeFromJavascript(document.getElementById('txtMessage').value);" />
Run Code Online (Sandbox Code Playgroud)

请查看该文章,以了解更多您可以做的事情。

注意事项

  • 这很可能不是新桌面应用程序的最佳方法。如果只是出于不熟悉而使用现有工具的问题,那么我会考虑其他方法,例如学习WPF或寻找类似此问题其中之一 方法

如果实际上您不打算在脱机应用程序中使用html和javascript编码的现有代码库,则可以使用这种方法来回收现有代码库,方法一定是查看此方法或其他方法之一提到像使用WPF动画