2

まず、自分が何を達成しようとしているのかを明確にする必要があります。これは、4つのパノラマがあり、すべてのパノラマの最初のページが異なるアプリになります。しかし、最後の3ページは同じです。

どういうわけか、すべてのパノラマでこれらの3ページを定義しないことは可能ですか?XAMLファイルでコンテンツを定義してパノラマにロードできますか?したがって、変更がある場合は、4つの異なるページで変更する必要はありません...

私の質問を理解していただければ幸いです。

ありがとうございました。

4

2 に答える 2

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>

次に、繰り返しパノラマアイテムのコンテンツをUserControlに配置します。VisualStudioに新しい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>

パノラマ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>

コントロールを見つけることができるように、パノラマを含むページに名前空間の定義を含める必要がある場合があることに注意してください。

于 2012-03-06T14:07:54.723 に答える
0

パノラマアイテムを.csに動的に追加します

于 2012-03-06T14:08:28.717 に答える