2012-03-06 63 views
2

首先,我必須說清楚我正在努力完成什麼,它將成爲一個應用程序,我擁有4個全景圖,每個全景圖的第一頁是不同的。但最後3頁是相同的。如何從另一個xaml文件獲取WP7全景內容?

是否有可能不在每個全景中定義這3個頁面?我可以在XAML文件中定義內容並將其加載到全景圖中嗎?所以,如果我有變化,我不必讓他們在4個不同的網頁...

我希望你能理解我的問題。

謝謝。

回答

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> 

現在把重複全景項目的內容在用戶控件: 添加一個新的用戶控件在Visual Studio中從(選擇「用戶控件」項目模板)和 添加您目前在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> 

請注意,你可能有包含全景頁面inlcude命名空間定義,以便控制都可以找到。

+0

+1我還會回答相同的問題。似乎最邏輯的方式來做到這一點.. :) – Abbas 2012-03-06 14:10:37

+0

你能給我一個小例子嗎?我很新,Silverlight和這些控制... – MrTouch 2012-03-06 14:15:49

+0

@AytacAkyol:添加了一個原始的例子。 – 2012-03-06 14:26:36

0

在.cs中動態添加panoramaitem

相關問題