سؤال

ولقد بنيت التطبيق WPF البسيط الذي يتنقل من خلال صفحات في الإطار، ولكن واحدة من الإطارات هو عارض الصور وأريد بحيث النقر المزدوج لشخص ما في الصورة أن يذهب كامل الشاشة (أي خارج الإطار).

ما هي أفضل طريقة للقيام بذلك في برنامج الأغذية العالمي؟

هل كانت مفيدة؟

المحلول

ويجب أن تكون قادرة على خلق لنفسك RoutedUICommand أو ربما يسمى "EnterFullScreen"، الذي رفع من داخل الصفحة الخاصة بك التي تمثل صورة المشاهد. كنت ببساطة هوك CommandBinding تصل إلى هذا في الإطار الرئيسي بحيث كلما أطلقت هذا الأمر، رد فعلك. من الواضح أنك ستحتاج العكس كذلك، "ExitFullScreen"، بحيث يكون لكل صفحة يمكن ربما تقدم UI هو نفسه للخروج من وضع ملء الشاشة.

وإليك ما قد تبدو رمز مثل لdefinining وتركيب الأوامر:

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