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));
}
}
}
答案 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; HorizontalAlignment
和VerticalAlignment
更改为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相关的页面。
好运和快乐的编码。