-1
我正在製作一個WPF應用程序,在主頁中有一個Frame和一些按鈕。 如果我按Button1我的框架導航到Page1,WPF獲取當前幀
Page1 vPage1 = new Page1();
Frame.Content = vPage1;
如果我按Button2它應該只導航到Page2如果Page1在框架中打開。 如何檢查Page1是否打開?
Thx
我正在製作一個WPF應用程序,在主頁中有一個Frame和一些按鈕。 如果我按Button1我的框架導航到Page1,WPF獲取當前幀
Page1 vPage1 = new Page1();
Frame.Content = vPage1;
如果我按Button2它應該只導航到Page2如果Page1在框架中打開。 如何檢查Page1是否打開?
Thx
這是一個適合您的樣本。
XAML
</Grid.RowDefinitions>
<Frame x:Name="fram" NavigationUIVisibility="Hidden"
Background="Silver"
Navigated="Frame_Navigated"
Source="Pages/Page1.xaml" />
<StackPanel Grid.Row="1"
HorizontalAlignment="Right"
Orientation="Horizontal">
<Button x:Name="btnPrev"
Click="btnPrev_Click"
Content="Prev" />
<Button x:Name="btnNext"
Click="btnNext_Click"
Content="Next" />
</StackPanel>
</Grid>
代碼。
int pageindex;
private void btnPrev_Click(object sender, RoutedEventArgs e)
{
if (pageindex <= 1)
{
fram.Navigate(new Uri("Pages/Page" + (pageindex + 2) + ".xaml",UriKind.Relative));
return;
}
fram.Navigate(new Uri("Pages/Page" + (pageindex - 1) + ".xaml", UriKind.Relative));
}
private void btnNext_Click(object sender, RoutedEventArgs e)
{
if (pageindex >= 3)
{
fram.Navigate(new Uri("Pages/Page" + (pageindex - 2) + ".xaml", UriKind.Relative));
return;
}
fram.Navigate(new Uri("Pages/Page" + (pageindex + 1) + ".xaml", UriKind.Relative));
}
private void Frame_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
pageindex = Convert.ToInt32(e.Content.GetType().Name.Substring(4));
}
爲什麼你不能使用布爾變量? – Vlad
爲什麼你不使用接口並提供下一頁和上一頁。或者甚至你可以在導航事件上玩和存儲變量 – JSJ
那麼它的一點點複雜,然後我的問題。我只是試着簡單地問一下。 –