Вопрос

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

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

Это было полезно?

Решение

Вы должны иметь возможность создать собственный 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}" />
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top