2016-09-08 2 views
-2

enter image description here möchte von Frame, die Textblock enthalten, zu navigieren, ich versuche unten angegebenen Code auf mainpage.xaml und mainpage.xaml.cs aber nichts passiert.Klicken Sie mir helfen, ich bin neu zu uwp - App Entwickler und jede Anregung geben Sie bittenavigieren durch Rahmen oder Text Block

<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

* „Hilf mir lernen Programmierung“ * Art von Fragen zu zukünftigen Besuchern nicht nützlich sind. Abstimmung zum Schließen. – IInspectable

Antwort

1

ich stimme Kommentare @IInspectable

sagen Helfen Sie mir lernen Programmierung“Art von Fragen sind nicht sinnvoll, zukünftigen Besuchern.

Allerdings wird meine Antwort, die Fehler korrigieren, die Sie tun, und werden Sie in richtige Richtung schubsen.

Ihr Gitter sollte so etwas wie unten

<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> 

Wenn Sie auf einer Seite mit einem Rahmen sind, die Ihnen verschiedene Ansichten zu zeigen verwenden, brauchen Sie nicht mehrere Frames für jede Seite zu verwenden. Sie können ein einzelnes Bild für die Navigation verwenden. Allerdings würde ich Sie vorschlagen, direkt, weil von einem Benutzer Sicht Benutzer auf der Seite navigieren noch Sign Up/Sign In Buttons sehen, wenn sie nach wie vor zu den Seiten navigiert werden. Aber wenn es immer noch eine Voraussetzung ist. Ihr Raster sollte etwas wie oben sein.

Wenn Sie sehen, habe ich Ihre Tapped Ereignisse aus Frame entfernt und nach TextBlock verschoben, da Sie den Benutzer auf die entsprechenden Seiten tippen und navigieren möchten.

Ich änderte MyFrame 's HorizontalAlignment und VerticalAlignment zu Stretch. Warum? Weil es jetzt den gesamten Raum ausfüllt und die Notwendigkeit beseitigt, Margin

jetzt zu Ihrem Tap Event zu verwenden.

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

In XAML können Sie sehen, dass ich auf beiden Textblocks gleichen Stampf Ereignis verwendet. Im Event selbst überprüfe ich, welcher TextBlock mit TextBlock textBlock = (TextBlock)sender; aufgerufen wird, damit ich den richtigen TextBlock bekomme. Da die TextBlock-Texteigenschaft für beide unterschiedlich ist, wechsle ich zu den entsprechenden Seiten, die dies verwenden, und navigiere zu Seiten, die TextBlocks betreffen.

Viel Glück und Happy Coding.

+0

Gute Antwort;). –

+0

Hallo AVK habe ich versucht, über Code-Änderungen aber nicht wie erwartet erste funktionierte es Fehler CS1061 \t ‚Mainpage‘ enthält keine Definition geben für ‚TextBlock_Tapped‘ und keine Erweiterungsmethode ‚TextBlock_Tapped‘ ein erstes Argument vom Typ ‚Mainpage‘ akzeptieren konnte gefunden werden. Später entfernt i und überprüft, aber in diesem Fall wird die Ausgabe wie diese Überlappung "signin sein und signupt‘ Textblock und es ist navigieren nicht zur nächsten Seite auch auf der Erschließung – pariwesh07

+0

Thx AVK schließlich hilft es :) – pariwesh07