2017-02-06 5 views
0

В моем проекте UWP есть 2 страницы.Универсальные окна: как получить доступ к элементам на другой странице?

На следующей странице я объявляю объект WebView.

<Page 
    x:Class="UniversalMarkdownTestApp.WebViewPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:UniversalMarkdownTestApp" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d"> 

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*" /> 
     </Grid.RowDefinitions> 

     <WebView Name="WebContent" Grid.Row="0" x:FieldModifier="public"/> 
    </Grid> 
</Page> 

Сейчас я хочу получить информацию об этом объекте на другой странице. Как я могу это достичь?

+0

Вы пытались получить доступ через WebViewPage.WebContent также отметили, что для этого нужно создать экземпляр этой страницы. – AbsoluteSith

ответ

0

Вы можете получить доступ к этому объекту в другой странице с помощью следующего кода:

MainPage mainpage = new MainPage(); 
var webv = mainpage.WebContent; 

Но, как сказал AbsoluteSith, экземпляр этого объекта был создан, если вы хотите, чтобы добавить его на новую страницу, вы не могли бы добавить напрямую.

Вам нужно будет использовать значение свойства этого объекта для создания нового объекта. См. Следующий код:

MainPage mainpage = new MainPage(); 
var webv = mainpage.WebContent; 

WebView wv = new WebView(); 
wv.Source = webv.Source; 
grid.Children.Add(wv); 

Существует еще один способ получить объект на других страницах. Вы можете передать объект в качестве параметра при навигации. Смотрите следующий код:

rootFrame.Navigate(typeof(BlankPage),WebContent); 
protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    WebView wv = new WebView(); 
    wv.Source = ((WebView)e.Parameter).Source; 
    gd.Children.Add(wv); 
} 

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

+0

Спасибо вам большое! Следуя вашему предложению, я отказываюсь от доступа к объектам на других страницах и пытаюсь реализовать его, передав необходимый параметр на другую страницу. –