首先,我必須說清楚我正在努力完成什麼,它將成爲一個應用程序,我擁有4個全景圖,每個全景圖的第一頁是不同的。但最後3頁是相同的。如何從另一個xaml文件獲取WP7全景內容?
是否有可能不在每個全景中定義這3個頁面?我可以在XAML文件中定義內容並將其加載到全景圖中嗎?所以,如果我有變化,我不必讓他們在4個不同的網頁...
我希望你能理解我的問題。
謝謝。
首先,我必須說清楚我正在努力完成什麼,它將成爲一個應用程序,我擁有4個全景圖,每個全景圖的第一頁是不同的。但最後3頁是相同的。如何從另一個xaml文件獲取WP7全景內容?
是否有可能不在每個全景中定義這3個頁面?我可以在XAML文件中定義內容並將其加載到全景圖中嗎?所以,如果我有變化,我不必讓他們在4個不同的網頁...
我希望你能理解我的問題。
謝謝。
可能最簡單的方法是將每個相同頁面的內容放入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命名空間定義,以便控制都可以找到。
在.cs中動態添加panoramaitem
+1我還會回答相同的問題。似乎最邏輯的方式來做到這一點.. :) – Abbas 2012-03-06 14:10:37
你能給我一個小例子嗎?我很新,Silverlight和這些控制... – MrTouch 2012-03-06 14:15:49
@AytacAkyol:添加了一個原始的例子。 – 2012-03-06 14:26:36