我有一个 ContentControl 我想在其中加载页面myPage2。此页面的我的 XAML 代码如下所示:
<Page x:Class="ExampleApp.myPage2">
<Grid x:Name="Content" Height="651" Width="941" Background="White">
...
...
</Grid>
</Page>
我知道我可以使用以下代码从页面加载资源:
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
{
var contentControl = (ContentControl)container;
return (DataTemplate) contentControl.Resources[templateKey];
}
我现在的问题是我无法使用此代码加载像上面这样的页面。我必须这样写:
<Page x:Class="ExampleApp.myPage2">
<Page.Resources>
<DataTemplate x:Key="Test">
<Grid x:Name="Content" Height="651" Width="941" Background="White">
...
...
</Grid>
</DataTemplate>
</Page.Resources>
</Page>
然后我可以从上面加载具有相同代码的页面templateKey="Test"
。但主要问题是我想使用页面的第一个声明而不想使用<Page.Resources> <DataTemplate x:Key="Test">
等等。我想从第一个声明(这篇文章中的第一个代码)直接加载网站。如何直接从页面创建 DataTemplate?还是有其他方法可以将页面加载到 ContentControl 中?