Как установить положение окна WPF во вторичном дисплее - программирование
Подтвердить что ты не робот

Как установить положение окна WPF во вторичном дисплее

У меня есть два дисплея. Я хочу создать медиаплеер, и я хочу воспроизвести видео в полноэкранном режиме на моем вторичном дисплее. Поэтому я пытаюсь сделать медиаплеер с помощью WPF

Вот код, который я написал

Screen[] _screens = Screen.AllScreens;
System.Drawing.Rectangle ractagle = _screens[1].Bounds;
//player is  my window
player.WindowState = WindowState.Maximized;
player.WindowStyle = WindowStyle.None;

player.Left = ractagle.X;
player.Top = ractagle.Y;


// MediaControl is an media elements
MediaControl.Height = ractagle.Height;
MediaControl.Width = ractagle.Width;

Но как-то его просто играли на моем первом показе. Любая помощь очень ценится.

4b9b3361

Ответ 1

Вы должны убедиться, что WindowStartupLocation установлен на Manual для формы, которую вы отображаете

Иначе ничто из того, что вы делаете, не повлияет на положение окна.

using System.Windows.Forms;
// reference System.Drawing
//

Screen s = Screen.AllScreens[1];

System.Drawing.Rectangle r  = s.WorkingArea;
Me.Top = r.Top;
Me.Left = r.Left;

Этот заголовок XAML окна я использовал.

<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="823" WindowStartupLocation="Manual">
    <Canvas Width="743">
        //Controls etc
    </Canvas>
</Window>

Ответ 2

5 лет спустя! Но для всех, кто сталкивается с этим, как я...

Если вы не можете или не хотите добавлять полную ссылку на System.Windows.Forms dll, вы можете использовать WpfScreenHelper от micdenny (поиск в NuGet)

  Screen screen = WpfScreenHelper.AllScreens[0];
  Left = screen.Bounds.Left;
  Top = screen.Bounds.Top;
  Width = screen.Bounds.Width;
  Height = screen.Bounds.Height;

Micdenny портировал помощника Windows Forms Screen для WPF. Это отлично, когда у вас есть другие рефери WPF, которые не очень хорошо играют с формами (например, WPF Live-Charts).