Навигация по страницам Silverlight из HTML - PullRequest
0 голосов
/ 24 августа 2010

Я занимаюсь разработкой веб-сайта, который содержит несколько «форм» для ввода данных и т. Д., И я планирую использовать Silverlight и RIA Services для управления данными в этих формах.Остальная часть сайта будет обычным HTML / CSS / JavaScript.

Планировалось создать единый элемент управления Silverlight со многими страницами, и каждая страница представляла бы одну форму.HTML-страница отображала бы этот элемент управления, но отображала бы определенную страницу в элементе управления Silverlight.

Итак, мои вопросы:

  1. При встраивании элемента управления Silverlight вHTML-страница Как элемент управления будет автоматически переходить на определенную страницу?

  2. После загрузки HTML-страницы и отображения элемента управления Silverlight можно ли будет иметь некоторый JavaScript, сообщающий элементу управления Silverlightперейти на другую страницу?

Ответы [ 3 ]

0 голосов
/ 25 августа 2010

После небольшого поиска я обнаружил, что тег «object», определяющий элемент управления Silverlight в HTML, может содержать элемент «initParams».

Итак, я думаю, что каждая страница, которую я создаю, будет иметь только одну «форму», поэтому в теге «object» я просто устанавливаю «initParams», чтобы определить, какую страницу элемент управления Silverlight должен установить как «RootVisual».

Когда элемент управления загружается, Application_Startup просматривает «initParams» и использует его, чтобы определить, какую страницу ему нужно создать, и назначить ее свойству RootVisual приложения.

Джеймс

0 голосов
/ 25 августа 2010

1) Одно из решений (не самое лучшее) будет выглядеть так:

private void Application_Startup(object sender, StartupEventArgs e)
    {

        var page = HtmlPage.Document.QueryString["Page"];
        RootVisual = GetPage(page);

    }

    private UIElement GetPage(string page)
    {
        switch (page)
        {
            case "page1": return new Page1();
            case "page2": return new Page2();
            default: return new PageNotFound();
        }
    }

2) Если вы хотите взаимодействовать с Silverlight с помощью HTML (JavaScript), это называется «мостом Silverlight HTML»:

HTML Bridge: взаимодействие между HTML и управляемым кодом

0 голосов
/ 24 августа 2010

1 - Silverlight использует закладки URL в конце URL для имитации навигации.

например. http://somesite.com/somepage.aspx#formname

Вы также можете переопределить поведение навигации по умолчанию, чтобы она могла выполнять классные вещи, такие как использование параметра закладки для динамического указания имени формы Silverlight, которую вы хотите показать.

2 - Вам нужно только убедиться, что часть закладок URL вашего сайта содержит что-то, что приложение Silverlight может интерпретировать.

Найдите в интерфейсе INavigationContentLoader примеры переопределения навигации с помощью пользовательского поведения. Я довольно легко нашел несколько статей по этому вопросу. Попробуйте это .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...