Question

J'ai construit une application WPF simple qui navigue dans les pages d'un cadre, mais l'un des cadres est un visualiseur d'images et je le veux pour que, si quelqu'un clique deux fois sur l'image, elle passe en mode plein écran cadre).

Quelle est la meilleure façon de faire cela dans WPF?

Était-ce utile?

La solution

Vous devriez pouvoir créer vous-même un RoutedUICommand , éventuellement appelé "EnterFullScreen", que vous élevez à partir de votre page et qui représente le visualiseur d'images. Vous associez simplement un CommandBinding à cela dans la fenêtre principale pour que, chaque fois que cette commande est déclenchée, vous réagissiez. Évidemment, vous aurez également besoin du contraire, "ExitFullScreen", pour que chaque page puisse éventuellement proposer sa propre interface utilisateur pour quitter le mode plein écran.

Voici à quoi pourrait ressembler le code permettant de définir et d'associer les commandes:

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

    }

Et dans votre page, vous utiliseriez simplement cette commande comme suit:

<Button Command="{x:Static myNS:MyWindow.EnterFullScreenCommand}" />
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top