Как получить WP7 Panorama Content из другого xaml-файла? - PullRequest
2 голосов
/ 06 марта 2012

Сначала я должен уточнить, чего я пытаюсь достичь, это будет приложение, в котором у меня есть 4 Панорамы, первая страница на каждой Панораме отличается. Но последние 3 страницы идентичны.

Можно ли как-то не определять эти 3 страницы в каждой панораме? Могу ли я определить содержимое в файле XAML и загрузить его в панорамы? Поэтому, если у меня есть изменения, мне не нужно вносить их на 4 разных страницах ...

Надеюсь, вы поняли мой вопрос.

Спасибо.

Ответы [ 2 ]

6 голосов
/ 06 марта 2012

Вероятно, самый простой способ - поместить содержимое каждой идентичной страницы в пользовательские элементы управления и ссылаться на пользовательские элементы управления в элементах панорамы.

РЕДАКТИРОВАТЬ: Пример

Текущая ситуация:

<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>

Теперь поместите содержимое повторяющихся элементов панорамы в UserControl: Добавьте новый UserControl в Visual Studio (выберите «UserControl» в шаблонах элементов) и добавьте XAML, который у вас есть в PanoraItem:

<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>

и измените 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>

Обратите внимание, что вам может потребоваться ввести определение пространства имен на странице, содержащей панораму, чтобы можно было найти элемент управления.

0 голосов
/ 06 марта 2012

добавить панораму динамически в .cs

...