none
Navigation zwischen mehreren Fenstern und schließen der App in Windows Phone 7? RRS feed

  • Frage

  • Hallo Leute,

     

    ich fange erst gerade mit der Entwicklung an/mit mobilen Geräten an. Verfüge aber schon einiges an C++ Erfahrung und arbeite mich gerade in C# ein.

     

    Ich habe eine (Test)Anwendung geschrieben die ein Eingabefeld und ein Button beinhaltet, beim Klick auf diesem Button möchte ich ein neues Fenster("Page") öffnen. Ich habe nun über Hinzufügen eine neue Seite hinzufügt und bereits gestaltet, beim Anzeigen dieser Seite scheitere ich allerdings da diese Page..-Klassen keine Show() etc.-Methoden besitzen.

     

    Hier meine Quelltexte:

     

    Haupt-Fenster:

     

    <phone:PhoneApplicationPage 
    
     x:Class="WindowsPhoneApplication1.MainPage"
    
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    
     xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    
     xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    
     FontFamily="{StaticResource PhoneFontFamilyNormal}"
    
     FontSize="{StaticResource PhoneFontSizeNormal}"
    
     Foreground="{StaticResource PhoneForegroundBrush}"
    
     SupportedOrientations="Portrait" Orientation="Portrait"
    
     mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    
     shell:SystemTray.IsVisible="True">
    
    
    
     <!--LayoutRoot contains the root grid where all other page content is placed-->
    
     <Grid x:Name="LayoutRoot" Background="Transparent">
    
     <!--TitlePanel contains the name of the application and page title-->
    
     <StackPanel x:Name="TitlePanel" Margin="12,72,12,638">
    
     <TextBlock x:Name="ApplicationTitle" Text="Prüft die Gültigkeit von Mobilrufnummern" Style="{StaticResource PhoneTextNormalStyle}" Height="24" TextWrapping="Wrap" FontSize="14" />
    
     <TextBlock x:Name="PageTitle" Text="TestApp" Margin="-3,-8,0,0" Style="{StaticResource PhoneTextTitle1Style}" FontSize="28" FontFamily="Segoe WP Black" />
    
     </StackPanel>
    
    
    
     <!--ContentPanel - place additional content here-->
    
     <Grid x:Name="ContentGrid" Margin="0,136,0,-83">
    
     <TextBlock Height="30" HorizontalAlignment="Left" Margin="24,103,0,0" Name="textBlock1" Text="Nummer:" VerticalAlignment="Top" />
    
     <TextBox Height="72" HorizontalAlignment="Left" Margin="24,139,0,0" Name="textBox1" Text="Rufnummer..." VerticalAlignment="Top" Width="432" MouseEnter="textBox1_MouseEnter" />
    
     <TextBlock Height="91" HorizontalAlignment="Left" Margin="24,6,0,0" Name="textBlock2" Text="Geben Sie bitte die Rufnummer ein, die Sie auf Gültigkeit überprüfen wollen und drücken Sie &quot;überprüfen&quot;." VerticalAlignment="Top" TextWrapping="Wrap" Width="432" />
    
     <Button Content="Überprüfen" Height="72" HorizontalAlignment="Left" Margin="24,200,0,0" Name="button1" VerticalAlignment="Top" Width="432" Click="button1_Click" />
    
     <Button Content="Beenden" Height="72" HorizontalAlignment="Left" Margin="24,258,0,0" Name="button2" VerticalAlignment="Top" Width="432" Click="button2_Click" />
    
     </Grid>
    
     </Grid>
    
     
    
     <!-- Sample code showing usage of ApplicationBar
    
     <phone:PhoneApplicationPage.ApplicationBar>
    
     <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
    
     <shell:ApplicationBarIconButton x:Name="appbar_button1" IconUri="/Images/appbar_button1.png" Text="Button 1"></shell:ApplicationBarIconButton>
    
     <shell:ApplicationBarIconButton x:Name="appbar_button2" IconUri="/Images/appbar_button2.png" Text="Button 2"></shell:ApplicationBarIconButton>
    
     <shell:ApplicationBar.MenuItems>
    
     <shell:ApplicationBarMenuItem x:Name="menuItem1" Text="MenuItem 1"></shell:ApplicationBarMenuItem>
    
     <shell:ApplicationBarMenuItem x:Name="menuItem2" Text="MenuItem 2"></shell:ApplicationBarMenuItem>
    
     </shell:ApplicationBar.MenuItems>
    
     </shell:ApplicationBar>
    
     </phone:PhoneApplicationPage.ApplicationBar>
    
     -->
    
    
    
    
    
    </phone:PhoneApplicationPage>
    
    
    
    

     

    HauptFenster-C#-Quelltext:

     

    using System;
    
    using System.Text;
    
    using System.IO;
    
    using System.Collections.Generic;
    
    using System.Linq;
    
    using System.Net;
    
    using System.Windows;
    
    using System.Windows.Controls;
    
    using System.Windows.Documents;
    
    using System.Windows.Input;
    
    using System.Windows.Media;
    
    using System.Windows.Media.Animation;
    
    using System.Windows.Shapes;
    
    using Microsoft.Phone.Controls;
    
    
    
    namespace WindowsPhoneApplication1
    
    {
    
     public partial class MainPage : PhoneApplicationPage
    
     {
    
     // Constructor
    
     public MainPage()
    
     {
    
     InitializeComponent();
    
    
    
     SupportedOrientations = SupportedPageOrientation.PortraitOrLandscape;
    
     }
    
    
    
     private void textBox1_MouseEnter(object sender, MouseEventArgs e)
    
     {
    
     if (!hasValidContent())
    
     this.textBox1.ClearValue(TextBox.TextProperty);
    
     }
    
    
    
     private void button1_Click(object sender, RoutedEventArgs e)
    
     {
    
     if (hasValidContent())
    
     MessageBox.Show(string.Format("Die Gültigkeit der Rufnummer '{0}' wird ermittelt! Bitte warten Sie einige Augenblicke...", this.textBox1.GetValue(TextBox.TextProperty).ToString()));
    
     else
    
     MessageBox.Show("Sie haben noch keine Rufnummer eingegeben! Bitte geben Sie zuerst eine Mobilfunkrufnummer ein.");
    
     }
    
    
    
     private bool hasValidContent()
    
     {
    
     string strValue = this.textBox1.GetValue(TextBox.TextProperty).ToString();
    
     return strValue != "Rufnummer..." && strValue != "";
    
     }
    
    
    
     private void button2_Click(object sender, RoutedEventArgs e)
    
     {
    
     Page1 pageTEst = new Page1(); // ###!!!! 
    
     //Diesen erstelltes Fenster möchte ich in Vollbild anzeigen!!!!!!
    
     }
    
     }
    
    }
    
    
    
    

     

    Page1

     

    <phone:PhoneApplicationPage 
    
     x:Class="WindowsPhoneApplication1.Page1"
    
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    
     xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    
     xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    
     FontFamily="{StaticResource PhoneFontFamilyNormal}"
    
     FontSize="{StaticResource PhoneFontSizeNormal}"
    
     Foreground="{StaticResource PhoneForegroundBrush}"
    
     SupportedOrientations="Portrait" Orientation="Portrait"
    
     mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="480"
    
     shell:SystemTray.IsVisible="True">
    
    
    
     <!--LayoutRoot contains the root grid where all other page content is placed-->
    
     <Grid x:Name="LayoutRoot" Background="Transparent">
    
     <Grid.RowDefinitions>
    
     <RowDefinition Height="Auto"/>
    
     <RowDefinition Height="*"/>
    
     </Grid.RowDefinitions>
    
    
    
     <!--TitlePanel contains the name of the application and page title-->
    
     <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="24,24,0,12">
    
     <TextBlock x:Name="ApplicationTitle" Text="TestApp" Style="{StaticResource PhoneTextNormalStyle}"/>
    
     <TextBlock x:Name="PageTitle" Text="Überprüfe..." Margin="-3,-8,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
    
     </StackPanel>
    
    
    
     <!--ContentPanel - place additional content here-->
    
     <Grid x:Name="ContentGrid" Grid.Row="1">
    
     <Grid.RowDefinitions>
    
     <RowDefinition Height="190*" />
    
     <RowDefinition Height="427*" />
    
     </Grid.RowDefinitions>
    
     <ProgressBar Height="81" HorizontalAlignment="Left" Margin="21,90,0,0" Name="progressBar1" VerticalAlignment="Top" Width="447" Value="25" FontSize="20" />
    
     <Button Content="Abbrechen" Grid.Row="1" Height="72" HorizontalAlignment="Left" Margin="21,71,0,0" Name="button1" VerticalAlignment="Top" Width="447" Click="button1_Click" />
    
     </Grid>
    
     </Grid>
    
    
    
    </phone:PhoneApplicationPage>
    
    
    
    

     

    Page1-C#:

     

    using System;
    
    using System.Collections.Generic;
    
    using System.Linq;
    
    using System.Net;
    
    using System.Windows;
    
    using System.Windows.Controls;
    
    using System.Windows.Documents;
    
    using System.Windows.Input;
    
    using System.Windows.Media;
    
    using System.Windows.Media.Animation;
    
    using System.Windows.Shapes;
    
    using Microsoft.Phone.Controls;
    
    
    
    namespace WindowsPhoneApplication1
    
    {
    
     public partial class Page1 : PhoneApplicationPage
    
     {
    
     public Page1()
    
     {
    
     InitializeComponent();
    
     }
    
    
    
     private void button1_Click(object sender, RoutedEventArgs e)
    
     {
    
     progressBar1.SetValue(ProgressBar.ValueProperty, 0);
    
     MessageBox.Show("Der Vorgang wurde abgebrochen!");
    
     }
    
     }
    
    }
    
    

     

    Mein Problem befindet sich in der Methode button2_click der Klasse MainPage.

    Entweder wird hier ein anderes Konzept benutzt (nicht so wie in der Windows32-Welt) oder ich habe einfach nach der falschen Methode gesucht?!?

     

    Desweiteren suche ich dann nach der Möglichkeit dieses Fenster auch wieder zu schließen (wenn die Einstellungen/Operationen abgeschlossen sind!) und wieder zum Hauptfenster zurückzukehren.

     

    Ich hoffe ihr könnt mir Helfen.

     

    Gruß

    RudolfG

    • Bearbeitet Rudolf Grauberger Dienstag, 10. August 2010 13:25 Titel angepasst:D
    • Bearbeitet Robert Breitenhofer Montag, 30. August 2010 10:11 Titel war: Navigation zwischen mehreren Fenstern und schließen der App in Windows Phone?
    • Verschoben Robert Breitenhofer Montag, 30. August 2010 10:12 Windows Phone 7 (aus:Windows Mobile)
    Dienstag, 10. August 2010 07:53

Antworten

Alle Antworten