Pregunta

He creado una aplicación WPF simple que navega a través de las páginas en un marco, pero uno de los marcos es un visor de imágenes y lo quiero para que, si alguien hace doble clic en la imagen, se muestre en pantalla completa (es decir, fuera de la pantalla). marco).

¿Cuál es la mejor manera de hacer esto en WPF?

¿Fue útil?

Solución

Debería poder crearse un personalizado RoutedUICommand , tal vez llamado " EnterFullScreen " ;, que aparece dentro de la página que representa el visor de imágenes. Simplemente conecte un CommandBinding a esto en la ventana principal para que cada vez que se ejecute ese comando, reaccione. Obviamente, también necesitarás lo contrario, " ExitFullScreen " ;, para que cada página pueda ofrecer su propia interfaz de usuario para salir del modo de pantalla completa.

Aquí se muestra el código para definir y conectar los comandos:

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

    }

Y luego en su página, simplemente usaría este comando así:

<Button Command="{x:Static myNS:MyWindow.EnterFullScreenCommand}" />
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top