【问题标题】:WPF get current frameWPF 获取当前帧
【发布时间】:2012-10-11 15:03:23
【问题描述】:

我正在制作一个 WPF 应用程序,主页中包含一个框架和一些按钮。 如果我按下 Button1,我的框架会导航到 Page1,

Page1 vPage1 = new Page1();
Frame.Content = vPage1;

如果我按下 Button2,它应该只在 Page1 在 Frame 中打开时导航到 Page2。 如何检查 Page1 是否打开?

谢谢

【问题讨论】:

  • 为什么不能使用布尔变量?
  • 为什么不使用界面并提供下一页和上一页。甚至您可以在导航事件中玩耍并存储变量
  • 嗯,它比我的问题要复杂一些。我只是试着简单地问。
  • 刚刚找到了一种方法(可能不是正确的方法,但它有效): String vTest = Frame.Content.ToString(); IF (vTest == ".Page1)

标签: wpf frame


【解决方案1】:

这是给你的样本。

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));
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 2016-06-16
    • 1970-01-01
    相关资源
    最近更新 更多