0

Итак, у меня есть страница, в которой я сделал кнопку свертывания и хочу привязать к нему ивент. Если бы это было окно, я бы сделал так:

WindowState = WindowState.Minimized;

Но через страницу, конечно, это не работает. Я пытался сделать так:

(this.Parent as Window).WindowState = WindowState.Minimized;

Это крашит программу при нажатии на соответствующую кнопку. Как это можно реализовать? Я могу как-нибудь через объект Page ссылаться на Window?

  • При чем тут "ивент"? Ваш вопрос совершенно не связан с этим механизмом. Вообще, ваш вопрос на тему передачи объектов из класса в класс, но в WPF то, что вы делаете не принято, ибо WPF это в первую очередь привязки и XAML, вы не должны хотеть вообще в коде делать контрол.Свойство = значение (в вашем случае WindowState = WindowState.Minimized;), это должно быть в XAML, а в C# должны быть лишь данные, простые классы и свойства. Другими словами, ваш проект должен работать даже тогда, когда вы удалите все в XAML, без вывода ошибок. – EvgeniyZ Nov 30 '22 at 20:44
  • Application.Current.MainWindow.WindowState = WindowState.Minimized; А архитектура на базе Frame/Page это жестоко https://ru.stackoverflow.com/a/1266479/373567. Ещё про MVVM что-нибудь почитайте. – aepot Nov 30 '22 at 21:28
  • 1
    Благодарю! MVVM еще буду изучать, но пока надо проект добить. – Actaeon Nov 30 '22 at 22:21

0 Answers0