zoukankan      html  css  js  c++  java
  • wpf dual monitor


    <Window x:Class="DualMonitors.Views.WinLeft"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:DualMonitors.Views"
            mc:Ignorable="d" WindowState="Maximized"  WindowStartupLocation="CenterScreen" 
            Title="WinLeft" Height="300" Width="300">
        <Grid Background="Blue">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition/>
                    <RowDefinition/>
                </Grid.RowDefinitions>
                <TextBlock Text="Left" FontSize="50" VerticalAlignment="Center" HorizontalAlignment="Center"/>
                <Button Grid.Row="2" Command="{Binding LeftCmd}" Content="Click Left" FontSize="50"/>
            </Grid>
           
        </Grid>
    </Window>
    
    
    <Window x:Class="DualMonitors.Views.WinRight"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:DualMonitors.Views"
            mc:Ignorable="d" WindowState="Maximized" WindowStartupLocation="CenterScreen" 
            Title="WinRight">
        <Grid Background="Yellow">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition/>
                    <RowDefinition/>
                </Grid.RowDefinitions>
                <TextBlock Text="Right" FontSize="50" VerticalAlignment="Center" HorizontalAlignment="Center"/>
                <Button Grid.Row="2" Command="{Binding RightCmd}" Content="Click Right" FontSize="50"/>
            </Grid>
        </Grid>
    </Window>
    using DualMonitors.ViewModel;
    using System.Windows;
    
    namespace DualMonitors.Views
    {
        /// <summary>
        /// Interaction logic for WinRight.xaml
        /// </summary>
        public partial class WinRight : Window
        {
            public WinRight()
            {
                InitializeComponent();
                DualVM BDualVM = DualVM.GetDualVM();
                this.DataContext = BDualVM;
            }
        }
    }
    using Prism.Commands;
    using System.Windows;
    
    namespace DualMonitors.ViewModel
    {
        public class DualVM
        {
            private static DualVM DualVMInstance;
            
            public static DualVM GetDualVM()
            {
                object objLock = new object();
                lock(objLock)
                {
                    if(DualVMInstance==null)
                    {
                        DualVMInstance = new DualVM();
                    }
                }
                return DualVMInstance;
            }
    
            private DualVM()
            {
                //MessageBox.Show("Dual Monitor");
            }
    
            private DelegateCommand leftCmdValue;
            public DelegateCommand LeftCmd
            {
                get
                {
                    if(leftCmdValue==null)
                    {
                        leftCmdValue = new DelegateCommand(LeftCmdExecuted);
                    }
                    return leftCmdValue;
                }
            }
    
            private void LeftCmdExecuted()
            {
                MessageBox.Show("Left Monitor");
            }
    
            private DelegateCommand rightCmdValue;
            public DelegateCommand RightCmd
            {
                get
                {
                    if(rightCmdValue==null)
                    {
                        rightCmdValue = new DelegateCommand(RightCmdExecuted);
                    }
                    return rightCmdValue;
                }
            }
    
            private void RightCmdExecuted()
            {
                MessageBox.Show("Right Monitor");
            }
        }
    }
    public partial class App : System.Windows.Application
        {
    
            protected override void OnStartup(StartupEventArgs e)
            {
                base.OnStartup(e);           
    
                SetupWindows();
            }
             
            private void SetupWindows()
            {
                System.Windows.Forms.Screen mainScreen = Screen.AllScreens[0]; ;
                WinLeft leftWin = new WinLeft()
                {
                    WindowStartupLocation = WindowStartupLocation.Manual,
                    WindowState = System.Windows.WindowState.Normal,
                    Left = mainScreen.WorkingArea.Left,
                    Top = mainScreen.WorkingArea.Top,
                    Width = mainScreen.WorkingArea.Width,
                    Height = mainScreen.WorkingArea.Height
                };           
    
                System.Windows.Forms.Screen secondaryScreen = Screen.AllScreens[1];
                WinRight rightWin = new WinRight()
                {
                    WindowStartupLocation = WindowStartupLocation.Manual,
                    WindowState = System.Windows.WindowState.Normal,
                    Left = secondaryScreen.WorkingArea.Left,
                    Top = secondaryScreen.WorkingArea.Top,
                    Width = secondaryScreen.WorkingArea.Width,
                    Height = secondaryScreen.WorkingArea.Height
                };
    
               
                leftWin.Show();
                leftWin.WindowState = WindowState.Maximized;
                rightWin.Show();
                rightWin.WindowState = WindowState.Maximized;
                rightWin.Owner = leftWin;
            }
        }

  • 相关阅读:
    tailf、tail -f、tail -F三者区别(转)
    Jackson是线程安全的吗
    SecureCRT同时向多个终端发送命令
    SecureCRT设置和Xshell一样的快速命令集(使用快捷键输入命令和密码)
    SecureCRT配色方案
    Java中判断字符串是否为数字的方法
    MySQL错误:Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL easonjim
    SecureCRT导出服务器列表或配置文件
    java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.SpecialProvider.<init>()
    Badge
  • 原文地址:https://www.cnblogs.com/Fred1987/p/11633851.html
Copyright © 2011-2022 走看看