我正在創建一個WindowsPhone應用程序,我必須導航到我的應用程序中的某些頁面,但我不想離開MainPage。我如何導航Windows Phone應用程序中的頁面內的頁面
它就像MainPage中的一個小頁面,有沒有可能?
我試圖創建用戶控制相同的,但缺點是用戶控制負載加載MainPage後,但我不想要相同。我想在應用程序中點擊某處,然後加載下一頁(保持應用程序的快速),而不是在MainPage加載事件中一次加載所有用戶控件。
如果您有其他方法可以幫助,請回復。
我正在創建一個WindowsPhone應用程序,我必須導航到我的應用程序中的某些頁面,但我不想離開MainPage。我如何導航Windows Phone應用程序中的頁面內的頁面
它就像MainPage中的一個小頁面,有沒有可能?
我試圖創建用戶控制相同的,但缺點是用戶控制負載加載MainPage後,但我不想要相同。我想在應用程序中點擊某處,然後加載下一頁(保持應用程序的快速),而不是在MainPage加載事件中一次加載所有用戶控件。
如果您有其他方法可以幫助,請回復。
在第一幀保持打開狀態時,無法導航到幀。並且由於樞軸/全景你不能使用彈出。你必須堅持用戶控制的方法。您可以優化性能的XAML下面是關於如何優化XAML
編輯
MyUserControl1 control = new MyUserControl1();
control.DataContext = //bindable data from usercontrol
this.ContentRoot.Children.Add(control);
thanx好友的回覆,正如我所說如果我使用用戶控件,我將不得不創建超過10個用戶控件(在我的應用程序中需要),沒有問題。 但是,當加載MainPage時,用戶控件在不調用它們的情況下會自動加載,因此,如果有10個包含大量數據的用戶控件(允許說2000首歌曲),它將會非常慢並且效率低下。 因爲一切都會在應用程序被激活時調用。 所以,我希望更好的控制比,否則必須優化與用戶控制:( –
否則,如果有一種方法來停止激活用戶控件時父頁面加載和激活/初始化根據我需要,它會工作:) –
動態添加用戶控制後面的代碼呢?當它需要時。在任何點擊事件上說? –
只要有你裏面的MainPage一個框架的一些技巧。使用該框架導航到其他頁面。
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid x:Name="TitlePanel" Grid.Row="0">
<StackPanel Orientation="Vertical">
<TextBlock Text="Title" />
<Button Click="Button_Click"
Content="Page1"
Tag="SharedFrame.BasicPage1" />
<Button Click="Button_Click"
Content="Page2"
Tag="SharedFrame.BasicPage2" />
</StackPanel>
</Grid>
<Grid x:Name="ContentPanel" Grid.Row="1">
<Frame x:Name="rootFrame" />
</Grid>
</Grid>
這是你如何從後面的代碼導航:
private void Button_Click(object sender, RoutedEventArgs e)
{
Button b = sender as Button;
if (b != null && b.Tag != null)
{
Type pageType = Type.GetType(b.Tag.ToString());
if (pageType != null && rootFrame.CurrentSourcePageType != pageType)
{
rootFrame.Navigate(pageType);
}
}
}
BasicPage1和BasicPage2是我想要導航到時,內部的MainPage頁面。
thanx男人,但在Silverlight的任何方式?這將是非常有益的:) –
如果您的主頁有足夠的可用空間用於「其他頁面」,您可以試試這個: 在您的主XAML中放置另一個Frame並將其他頁面導航到該框架。你的主要仍然可見和活躍。
我已經在更大的屏幕(平板電腦)上做到這一點,並知道陷阱。 請勿將導航助手用於其他頁面,因爲您不會導航回,而是將其他「其他頁面」發送到該框架。或在導航後刪除最後一個揹包條目。
secondFrame.Navigate(pageType, frames);
if (secondFrame.BackStackDepth > 0)
secondFrame.BackStack.RemoveAt(secondFrame.BackStackDepth - 1);
您可以創建一個Popup,它是一個完整的頁面。它會快速加載並快速消失。 – BitBank
對不起,但我希望它是一個導航頁面,至於我的任務,我必須使用樞軸或全景,彈出的不會幫助。 主要的是我在我的MainPage中使用動畫,如果我導航到另一個頁面動畫將重置(壞我的應用程序),所以我必須根據事件導航。 –