Exemplo n.º 1
0
        private static void SetScreen(System.Windows.Window win) //设置屏幕位置
        {
            var attr = win.GetType().GetCustomAttributes(typeof(MultipScreenAttribute), false).FirstOrDefault(o => o is MultipScreenAttribute);
            // int index = 1;
            int  index           = CallSystem.Class.Config.ScreenIndex;
            bool ingoreOperation = false;
            WindowStartupLocationInScreen inScreen = WindowStartupLocationInScreen.CenterScreen;

            if (attr != null)
            {
                var temp = (attr as MultipScreenAttribute);
                index           = temp.Index;
                inScreen        = temp.InScreen;
                ingoreOperation = temp.IngoreMinorScreenError;
            }
            Screen screen = PrimaryScreen;

            if (index == 1 && FirstMinorScreen != null)
            {
                screen = FirstMinorScreen;
            }
            else if (index > 1 && index < MinorScreens.Count())
            {
                screen = MinorScreens.ElementAt(index);
            }
            else if (index > 0 && index >= MinorScreens.Count() && ingoreOperation)
            {
                return;
            }

            switch (inScreen)
            {
            case WindowStartupLocationInScreen.CenterScreen:
                SetWindowInScreenCenter(win, screen);
                break;

            case WindowStartupLocationInScreen.Manual:
                SetWindowInScreenManual(win, screen);
                break;
            }
        }
Exemplo n.º 2
0
 public MultipScreenAttribute(int index = 0, WindowStartupLocationInScreen inScreen = WindowStartupLocationInScreen.CenterScreen)
 {
     Index    = index;
     InScreen = inScreen;
 }
Exemplo n.º 3
0
 public MultipScreenAttribute(ScreenType type = ScreenType.Primary, WindowStartupLocationInScreen inScreen = WindowStartupLocationInScreen.CenterScreen)
     : this((int)type, inScreen)
 {
 }