Silverlight 页面导航

发布于 2025-01-07 19:58:30 字数 184 浏览 0 评论 0原文

我在 aspx 页面中使用 silverlight 内容。我创建的 silverlight 页面位于一个单独的 silverlight 项目中,并且我已将该项目添加到我的普通 asp.net 应用程序 ClientBin.i 需要重定向到我的 asp.net 上的 aspx 页面从 silverlight 页面按钮单击进行项目。我怎样才能实现这一目标?

I'm using silverlight content within a aspx page.i have created silverlight page is in a separate silverlight project and i have added that project to my normal asp.net application ClientBin.i need to redirect to a aspx page on my asp.net project from a silverlight page button click.how can i achive this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

酒几许 2025-01-14 19:58:30

我认为你有两个选择之一。在该 silverlight 控件的视图模型中,在初始化期间,将超链接按钮的导航 URI 绑定到您想要导航到的所需 URI。选项 2(更流畅):在 click 方法中,在托管 silverlight 对象的页面上调用 javascript 方法。然后,该方法将为您执行某种平滑的 jquery 转换或只是一个简单的导航。
选项 1:

对于选项 2,请记住包含:

using System.Windows.Browser;

选项 2:

        public void OnFancyNavigate(string _destination)
    {
        //call the browser method/jquery method (I used constants to centralize the names of the respective browser methods
        try
        {
            HtmlWindow window = HtmlPage.Window;
            window.Invoke(Constants.TBrowserMethods.BM_FANCYNAVIGATE, new object[] { _destination});
        }
        catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); }
    }

最后,在托管 xap 内容的 aspx/html/.js 文件中定义 javascript 方法:

function fancyNavigate(_destination) {
//some fancy jquery or just the traditional document.location change here

}

C# 在从您的代码调用时将找到 javascript 方法,您应该可以开始了

I think you have one of two options. In your view model for that silverlight control, during the initialization, Bind the navigate URI for a hyperlink button to the desired URI you want to navigate to. Option 2 (a lot smoother): On the click method, Invoke a javascript method on the page that hosts the silverlight object. That method would then do some sort of smooth jquery transition or just a simple navigation for you.
Option 1: <HyperlinkButton NavigateUri="{Binding DesiredURL}" TargetName="_blank" />

For option 2, remember to include:

using System.Windows.Browser;

Option 2:

        public void OnFancyNavigate(string _destination)
    {
        //call the browser method/jquery method (I used constants to centralize the names of the respective browser methods
        try
        {
            HtmlWindow window = HtmlPage.Window;
            window.Invoke(Constants.TBrowserMethods.BM_FANCYNAVIGATE, new object[] { _destination});
        }
        catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); }
    }

Lastly, define the javascript method in the aspx/html/.js file that hosts the xap content:

function fancyNavigate(_destination) {
//some fancy jquery or just the traditional document.location change here

}

C# will locate the javascript method when invoked from your code, and you should be good to go

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文