簡體   English   中英

WPF雙顯示器的應用程序?

[英]wpf dual monitor application?

我是WPF的新手。 我想創建一個雙監視器/投影儀應用程序。 我想要做的是在一個監視器上具有“演示者屏幕”,在輔助監視器上具有另一個面板,類似於powerpoint的工作方式。 我正在努力將注意力集中在面板和XAML上。 因此,我要做的是用戶單擊screen1上的按鈕,然后在screen2上更新信息。

我正在使用此代碼:

this.Width = System.Windows.SystemParameters.VirtualScreenWidth;
this.Height = System.Windows.SystemParameters.VirtualScreenHeight;
this.Top = 0;
this.Left = 0;

設置屏幕的寬度和高度。

編輯:

后來的目標是使screen2根據screen1上的選擇從數據庫中檢索項目。

問題:教程,要去的地方,如何通過Monitor1上的按鈕更新Monitor2

簡短答案

創建一個在兩個視圖之間共享的視圖模型; 制作一個視圖作為視圖(進行更改),另一個視圖作為純視圖。 視圖是新窗口。 最初,不必關心窗口的位置(我們稍后再討論),只是讓共享的viewmodel工作。

提示:研究MVVM模式。 Google有很多關於該主題的文章。

長答案

在研究了MVVM並創建了一些示例應用程序(通過scatch或使用框架)之后,下面是要實現以創建“類似於powerpoint”的應用程序的一些其他功能。

  • 全屏模式

    至少您希望演示窗口為全屏顯示。 為此,請將WindowStyle設置為None並將AllowsTransparencyTrue

    如果要使第二個窗口也變為全屏顯示,則可能需要執行一些Win32覆蓋操作才能使窗口正確最大化而不覆蓋任務欄(如果想知道如何執行此操作,請發表評論)。

  • 檢測多個監視器

    使用Win32 Interop命令獲取監視器的大小和位置。 互聯網上會有很多文章可以幫助您解決此問題(或發布另一個StackoverFlow問題)。

    這將是一個整潔的功能,因為它將正確放置兩個窗口(使用輔助屏幕作為演示)。


這就是我現在能想到的全部內容,如果您對MVVM或以上任何其他問題有任何疑問,請回傳。

1)您應該有2個Windows,這看起來像是我將monitor2設為monitor1的子窗口(畢竟,這是一個孩子;)
我的意思是,App.xaml中的StartupUri應該指向monitor1,並且在monitor1的構造函數中,您應該創建monitor2的實例(如果我這樣做的話,將是單例)。

2)要在第二個屏幕上最大化一個窗口:訂閱窗口的Loaded事件(在代碼后面),然后設置

private void Window_Loaded(object sender, RoutedEventArgs e) {
            WindowState = WindowState.Maximized;
        }

更多信息(和來源): 這里

3)關於當您在Monitor1中設置某些內容時如何使Monitor2做出反應,請使Monitor1和Monitor2綁定到相同的ViewModel,只有它們顯示不同的內容。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM