Frage

Ich habe eine einfache WPF-Anwendung aufgebaut, die durch die Seiten in einem Rahmen navigiert, aber einer der Rahmen ist ein Bildbetrachter und ich will es so, dass, wenn jemand doppelt klickt auf das Bild, das sie Vollbild (dh außerhalb der geht Frame).

Was ist der beste Weg, dies in WPF zu tun?

War es hilfreich?

Lösung

Sie sollten Lage sein, sich eine eigene RoutedUICommand , vielleicht als „enterfullscreen“, die Sie aus Ihrer Seite zu erhöhen, die den Bildbetrachter darstellt. Sie einfach einen Haken Command im Hauptfenster dies so, dass, wenn dieser Befehl ausgelöst wird, Sie reagieren. Natürlich müssen Sie das Gegenteil auch „exitfullscreen“, so dass jede Seite vielleicht seine eigene Benutzeroberfläche zum Verlassen Vollbild-Modus bieten hat.

Hier ist, was der Code aussehen könnte für definining und die Befehle Einhaken:

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?
                               }));

    }

Und dann in Ihrer Seite würden Sie einfach diesen Befehl verwenden, etwa so:

<Button Command="{x:Static myNS:MyWindow.EnterFullScreenCommand}" />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top