我的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 :(得分: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);
}
在这里,我仍然不确定你为什么要这样做。一般来说,我不建议在页面之间进行控制。也许,如果你能告诉我们你的要求,或者你想达到什么样的效果,可能会有更好的解决方案。