Связь WPF от страницы / кадра к окну - PullRequest
0 голосов
/ 22 октября 2009

Я создал простое приложение WPF, которое перемещается по страницам в фрейме, но один из фреймов является средством просмотра изображений, и я хочу, чтобы, если кто-то дважды щелкнет по изображению, он вышел на полный экран (т.е. за пределами кадр).

Какой лучший способ сделать это в WPF?

1 Ответ

0 голосов
/ 22 октября 2009

Вы должны иметь возможность создать собственную RoutedUICommand , которая может называться «EnterFullScreen», которую вы поднимаете изнутри своей страницы, представляющей средство просмотра изображений. Вы просто подключаете CommandBinding к этому в главном окне, чтобы всякий раз, когда эта команда запускалась, вы реагировали. Очевидно, вам понадобится и обратное, «ExitFullScreen», чтобы каждая страница могла предложить свой собственный интерфейс для выхода из полноэкранного режима.

Вот как может выглядеть код для определения и подключения команд:

public partial class MyWindow : Window
{
    public static readonly RoutedUICommand EnterFullScreenCommand = 
        new RoutedUICommand("Enter fullscreen mode", 
                            "EnterFullScreen", 
                            typeof(MyWindow));
    public static readonly RoutedUICommand ExitFullScreenCommand = 
        new RoutedUICommand("Exit fullscreen mode", 
                            "ExitFullScreen", 
                            typeof(MyWindow));

    public MyWindow()
    {
        this.InitializeComponent();

        this.CommandBindings.Add(
            new CommandBinding(MyWindow.EnterFullScreenCommand,
                               (sender, args) =>
                               {
                                   // logic to go fullscreen here
                               },
                               (sender, args) =>
                               {
                                   args.CanExecuted = 
                                       // am I already fullscreen?
                               }));

        this.CommandBindings.Add(
            new CommandBinding(MyWindow.ExitFullScreenCommand,
                               (sender, args) =>
                               {
                                   // logic to exit fullscreen here
                               },
                               (sender, args) =>
                               {
                                   args.CanExecuted = 
                                       // am I fullscreen right now?
                               }));

    }

И тогда на вашей странице вы просто используете эту команду следующим образом:

<Button Command="{x:Static myNS:MyWindow.EnterFullScreenCommand}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...