2017-02-09 4 views
0

Я новичок в C#, я создал новую страницу и хочу, чтобы закрыть его в стороне XAML у меня есть:закрытия страницы в МОФ

<Grid> 
     <Button Content="Back" Click="Button_Click_Exit" HorizontalAlignment="Left" Margin="220,263,0,0" VerticalAlignment="Top" Width="75"/> 
</Grid> 

и на стороне .xaml.cs:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 
    namespace UI 
    { 
     /// <summary> 
     /// Interaction logic for calibrationPage.xaml 
     /// </summary> 
     public partial class calibrationPage : Page 
     { 
      public calibrationPage() 
      { 
       InitializeComponent(); 
      } 

      private void Button_Click_Exit(object sender, RoutedEventArgs e) 
      { 
       Close(); 
      } 
     } 
    } 

Я думаю, что это должно быть очень просто, как-то я получаю эту ошибку, когда я пытаюсь построить его:

error CS1061: 'UI.calibrationPage' does not contain a definition for 'Close' and no extension method 'Close' accepting a first argument of type 'UI.calibrationPage' could be found 

EDIT: Я понимаю, что близко() делает не выйти, а затем перефразировать мой вопрос, как я могу просто закрыть страницу нажатием кнопки?

EDIT2: Для пользы: я в конечном итоге с помощью PageNavigator.NavigateTo функции для перемещения вперед и назад между страницами, я не думаю, что есть понятие закрытия одной страницы в wpf. Спасибо за участие каждого.

+0

Существует не метод Close(). Он пытается использовать его, но он не может найти его реализацию. – nagrom97

+1

Ошибка говорит все. Для страницы нет закрытого метода. Родитель, который может быть окном или любым приложением, будет иметь закрытый метод. – Versatile

+0

@ Переменный я понимаю. Так как я могу закрыть страницу !!! – Samer

ответ

1

Вы не хотите, чтобы объект закрывался.

Если вы просто хотите, чтобы кнопка действовала на мероприятие, я бы рекомендовал событие «щелкнуть» или «OnClick». Если вы находитесь в VS, вы можете просто дважды щелкнуть по кнопке в дизайнере, он автоматически заполнит все для вас.

Если вы хотите, чтобы форма была закрыта, вы можете использовать похожие методы из своего окна WPF.

private void button1_Click(object sender, EventArgs e) 
     { 
      this.Close(); 
     } 

С другой стороны, если вы хотите создать свой собственный метод (как в данном случае), вы можете сделать так, как:

 private void closeMethod() 
     { 
      // your code here 
     } 

затем вы называете его:

closeMethod(); 

В зависимости от вашего метода вы можете сказать, что он делает то, что вы хотите на странице. Например, закрыть страницу или окно.

Вы можете также передавать ссылки в своих методах

относятся к https://msdn.microsoft.com/en-us/library/ms173114.aspx методов.

Не уверен, что он подходит здесь, но в некоторых случаях вы можете использовать Application.Exit();, если это относится к https://social.msdn.microsoft.com/Forums/windows/en-US/f23247b8-e0ca-46eb-afb0-dbf22d4c84ac/thisclose-vs-applicationexit?forum=winforms, чтобы найти разницу.

+0

Я думаю, что это именно то, что я сделал, проверить xaml есть Click = "Button_Click_Exit" это достаточно? – Samer

+0

Какая у вас конечная цель для этой кнопки? Просто закрыть его? – Mokey

+0

Позвольте мне задать более четкий вопрос. Вы пытаетесь закрыть страницу из приложения WPF? Какую кнопку на самом деле должны делать? Вероятно, я могу помочь вам узнать больше об этом. – Mokey

Смежные вопросы