Не можете перемещаться по нажатию кнопки? - PullRequest
2 голосов
/ 20 декабря 2010

Ниже приведен мой код. Я не могу перейти от MasterPage.xaml к Slide_show.xaml нажатием кнопки.

 public partial class MainPage : PhoneApplicationPage
{ public MainPage()
    {
        InitializeComponent();
        Loaded += new RoutedEventHandler(MainPage_Loaded);


    }
  private void Play_C(object sender, RoutedEventArgs e)
    {
        //Slide_show obj=new Slide_show();
        //obj.MainPage_Loaded(sender,e);
        try
        {
            this.NavigationService.Navigate(new Uri("Slide_show.xaml",UriKind.Relative));

        }
        catch (Exception e1)
        {
            MessageBox.Show("unable to show");
        }
    }

файл xaml -

<phone:PhoneApplicationPage xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"  
x:Class="photoViewer.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"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"  
shell:SystemTray.IsVisible="True">

<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
 <Button Content="Play" Grid.Row="1" Height="72" HorizontalAlignment="Right" Margin="0,696,170,0" Name="button5" VerticalAlignment="Top" Width="114" Background="Transparent"   Click="Play_C"/>


</Grid>

Файл Slide_show.xaml.cs -

public class Slide_show : PhoneApplicationPage
{
 public Slide_show()
    {
        //InitializeComponent();

       Loaded += new RoutedEventHandler(MainPage_Loaded);
    }
  }

Ответы [ 3 ]

2 голосов
/ 20 декабря 2010

Я вижу 3 проблемы.

Во-первых, при переходе на страницу с Relative Uri вы должны запустить URI с /.Например:

NavigationService.Navigate(new Uri("/Slide_Show.xaml", UriKind.Relative));

Во-вторых, Slide_show.xaml.cs не определен как частичный класс.В этом случае вы по существу определяете 2 класса с тем же именем, что и частичный класс, который будет сгенерирован на основе xaml.(Точнее сгенерированный)

В-третьих, вы отключаете вызов на InitializeComponent().Без этого страница не будет построена правильно.(Предполагая, что вы обратились к последним 2 проблемам.)

Я предполагаю, что вы добавили новую страницу ("Slide_Show").Затем вы удалили частичное ключевое слово (по какой-либо причине), а затем закомментировали недействительный теперь вызов InitializeComponent.
Верните код, который вы удалили / закомментировали.Шаблон помещает это туда по причине.

2 голосов
/ 20 декабря 2010

Я думаю, что один "/" отсутствует в вашем Uri.this.NavigationService.Navigate (новый Uri ("/ Slide_show.xaml", UriKind.Relative));ни пытайся ..

0 голосов
/ 20 декабря 2010

Исключение попадает в ваш try / catch или оно просто не отображается?Если есть исключение, что это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...