【问题标题】:Windows UWP Pivot swiping through UIWindows UWP Pivot 在 UI 中滑动
【发布时间】:2016-11-15 00:41:00
【问题描述】:

我有一个 Windows 通用 UWP 应用程序,我正在使用 Pivot 让我能够在页面之间滑动以进行导航。假设我有三个 UI 页面(page1、page2 和 page3),然后我有三个 PivotItem,每个一个。问题是,在 PivotItem 内部,我目前每个都有一个 Frame,并且正在使用 Frame 来显示 UI 页面。这是可行的,但是,这似乎是多余的,因为据我了解,框架用于动态显示 UI 等内容。似乎您将在网格中拥有用于选项卡的按钮或链接,然后根据单击的按钮使用一帧来旋转 UI 视图,或者您将使用枢轴,我正在这样做。我选择 pivot 的主要原因是,我的目标是移动设备,我确实希望能够从一个页面滑动到另一个页面。

那么,我不知道的是,当使用数据透视时,我在每个数据透视项中放了什么?每个框架上的框架是否正确?还是应该使用 UIElement 之类的其他项目?

谢谢!

【问题讨论】:

  • 该链接上的文章确实很好地描述了它,并且在发布之前我确实阅读了该文章。我还下载并查看了示例。但是,文档仍然存在差距,这是我发布的问题。我确实希望我的应用程序看起来像文章中的屏幕截图,但您从他们那里下载的示例看起来不像屏幕截图。这是一个基本模板,就像文章中的示例 xaml 一样,它只是说“内容在此处”,然后它们直接在每个 PivotItem 中填充一些简单的控件,例如文本。
  • 我特别想知道的是,不是直接在 PivotItem 中填充控件,而是如何让每个 PivotItem 引用并使用我的其他页面?同样,我现在在 PivotItem 中使用 Frame ,其中 frame 指向我的页面(我也可以在后面的代码中设置)。但这是正确的吗?我是否必须为每个 PivotItem 使用 Frame,或者 PivotItem 是否可以通过设置 PivotItem 的 Content 属性来直接引用另一个页面?

标签: c# uwp windows-10-universal uwp-xaml


【解决方案1】:

我特别想知道的是,我不是直接在 PivotItem 中填充控件,而是如何让每个 PivotItem 引用并使用我的其他页面?

Pivot 是一个ItemsControl。因此它可以包含任何类型的项目的集合,包括Page。您可以在 PivotItem 中使用页面,如下所示:

<Page
x:Class="ProjectName.MainPage"
xmlns:local="using:ProjectName"
...
mc:Ignorable="d">

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Pivot x:Name="rootPivot" Title="Pivot Title">
        <PivotItem Header="Pivot Item 1">
            <!--reference the page with local:PageName-->
            <local:PageOne></local:PageOne>
        </PivotItem>
        <PivotItem Header="Pivot Item 2">
            <local:PageTwo></local:PageTwo>
        </PivotItem>
        <PivotItem Header="Pivot Item 3">
            <local:PageThree></local:PageThree>
        </PivotItem>
    </Pivot>
</Grid>

【讨论】:

  • 完美!这就是我一直在寻找的。谢谢!最后一个相关的问题,使用这种方法,页面是否在每次被刷到时都被实例化,然后在被刷掉时被销毁?
  • 页面在滑动时不会被破坏。当您向其他人滑动时页面被隐藏。当您导航到根页面时,它们都会在第一次被实例化。
  • 另外需要注意的是,页面的OnNavigatedTo/OnNavigatingFrom 在这种方法中不会被触发。如果你想触发它们,你必须使用 Frame。
  • 哦,谢谢你指出这一点。我想提出这些事件。所以,我想我又回到了需要使用框架的状态。我只是在每个 PivotItem 中放置一个框架吗?这种方法会导致它们在被刷掉时被破坏或隐藏吗?
  • 不,它也不会破坏页面。我的建议是,不要使用枢轴。请改用 Button 或 HyperLinkBut​​ton。当单击 Button/HyperLinkBut​​ton 时调用 Frame.Navigate 在子页面之间导航。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-08
  • 1970-01-01
相关资源
最近更新 更多