如何从另一个xaml-文件获取WP7全景内容?

MrT*_*uch 2 xaml windows-phone-7 panorama-control

首先,我必须明确我想要完成的任务,它将是一个应用程序,我有4个全景图,每个全景图上的第一页是不同的.但最后3页是完全相同的.

无论如何有可能不在每个全景中定义这3个页面吗?我可以在XAML文件中定义内容并将其加载到全景图中吗?所以,如果我有变化,我不必在4个不同的页面上制作它们......

我希望你理解我的问题.

谢谢.

Wil*_*mpt 6

可能最简单的方法是将每个相同页面的内容放入UserControls,并引用全景项中的UserControls.

编辑:示例

现在的情况:

<controls:Panorama Title="my application">
    <controls:PanoramaItem Header="first item">
        <!-- Your Panorama Item Content -->
    </controls:PanoramaItem>
    <controls:PanoramaItem Header="second item">
        <!--  Item Content To Be Moved -->
        <TextBlock Text="ToBeMovedToUserControl"/>  
    </controls:PanoramaItem>
</controls:Panorama>
Run Code Online (Sandbox Code Playgroud)

现在将重复全景项的内容放在UserControl中:在Visual Studio中添加一个新的UserControl(从项模板中选择"UserControl"),并在PanoraItem中添加当前具有的XAML:

<UserControl x:Class="PanoramaApp1.WindowsPhoneControl1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    d:DesignHeight="480" d:DesignWidth="480">

    <Grid x:Name="LayoutRoot">
         <TextBlock Text="ToBeMovedToUserControl"/>  
    </Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

并将全景XAML更改为:

<controls:Panorama Title="my application">
    <controls:PanoramaItem Header="first item">
        <!-- Your Panorama Item Content -->
    </controls:PanoramaItem>
    <controls:PanoramaItem Header="second item">
        <!--  Item Content To Be Moved -->
        <WindowsPhoneControl1/>
    </controls:PanoramaItem>
</controls:Panorama>
Run Code Online (Sandbox Code Playgroud)

请注意,您可能必须在包含全景图的页面中包含命名空间定义,以便可以找到控件.