浏览框架或文本块

时间:2016-09-08 11:26:05

标签: navigation uwp uwp-xaml

enter image description here想要从包含文本块的框架导航,我正在尝试在mainpage.xaml和mainpage.xaml.cs下面的代码,但没有任何反应。请帮助我,我是uwp -app dev的新手任何建议请提供

<Grid Grid.Row="2" Background="Transparent">
            <Image Source="Assets\info_footer.png"  Stretch="Fill" />
            <TextBlock  Text="Sign in" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="4,4,200,3" FontSize="32" />
            <TextBlock  Text="Sign up" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="190,4,10,3" FontSize="32"/>
            <Frame Name="MyFrame" Margin="4,4,220,3" Tapped="MyFrame_Tapped" >



            </Frame>
            <Frame Name="MyFrame1" Margin="210,4,10,3" Tapped="MyFrame1_Tapped" >

            </Frame>

namespace CustomSplash
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    /// 

    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
            RemoveGap();
        }
        public async void RemoveGap()
        {

            await StatusBar.GetForCurrentView().HideAsync();
        }

        private void MyFrame_Tapped(object sender, TappedRoutedEventArgs e)
        {
            Frame.Navigate(typeof(signin));
        }

        private void MyFrame1_Tapped(object sender, TappedRoutedEventArgs e)
        {
            Frame.Navigate(typeof(signup));
        }
    }

}

1 个答案:

答案 0 :(得分:1)

我同意@IInspectable comments

  

说帮助我学习编程&#34;问题的类型并不有用   未来的访客。

然而,我的回答将纠正你正在做的错误,并会朝着正确的方向推动你。

你的网格应该如下所示

<Grid Grid.Row="2" Background="Transparent">
    <Image Source="Assets\info_footer.png"  Stretch="Fill" />
    <TextBlock  Text="Sign in" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="32" Tapped="TextBlock_Tapped"/>
    <TextBlock  Text="Sign up" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="32" Tapped="TextBlock_Tapped"/>
    <Frame Name="MyFrame" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
</Grid>

如果您在包含用于显示不同视图的框架的页面中,则不需要为每个页面使用多个框架。你可以使用单帧进行导航。但是,我建议您直接导航到该页面,因为从用户的角度来看,当用户仍然导航到这些页面时,他们仍会看到Sign Up / Sign In按钮。但如果它仍然是一个要求。你的网格应该像上面那样。

如果您发现我从“框架”中移除了Tapped个事件并移至TextBlock,那么您希望用户点击并导航到相应的网页。

我将MyFrame&#39; HorizontalAlignmentVerticalAlignment更改为Stretch。为什么?因为现在它将填满整个空间,无需使用Margin

现在点击您的点按活动。

private void MyFrame_Tapped(object sender, TappedRoutedEventArgs e)
{
    TextBlock textBlock = (TextBlock)sender;
    switch(textBlock.Text)
    {
        case "Sign in":
            MyFrame.Navigate(typeof(signin));
            break;
        case "Sign up":
            MyFrame.Navigate(typeof(signup));
            break;
    }
}

在XAML中,您可以看到我在两个TextBlock上使用了相同的Tapped事件。在Event本身,我正在检查使用TextBlock textBlock = (TextBlock)sender;调用哪个TextBlock,以便我可以获得正确的TextBlock。由于TextBlock文本属性对于它们两者都不同,我使用它切换到适当的页面并导航到与TextBlocks相关的页面。

好运和快乐的编码。