示例#1
0
 Color GetColorAt(int x, int y)
 {
     System.Drawing.Rectangle bounds = new System.Drawing.Rectangle(x, y, 1, 1);
     try
     {
         using (Graphics g = Graphics.FromImage(bmp))
             g.CopyFromScreen(bounds.Location, System.Drawing.Point.Empty, bounds.Size);
     }
     catch (Win32Exception e)
     {
         // Occurs when administrator privilege requesting window pops out.
         return(Color.Transparent);
     }
     System.Drawing.Color color = bmp.GetPixel(0, 0);
     return(new Color(new Vector4(color.R, color.G, color.B, color.A) / 255.0f));
 }
示例#2
0
 public static Rectangle GetScreenWorkingArea(int screenIndex)
 {
     System.Drawing.Rectangle rect = System.Windows.Forms.Screen.AllScreens[screenIndex].WorkingArea;
     return(new Rectangle(rect.X, rect.Y, rect.Width, rect.Height));
 }
示例#3
0
 public static Rectangle GetScreenWorkingArea()
 {
     System.Drawing.Rectangle rect = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
     return(new Rectangle(rect.X, rect.Y, rect.Width, rect.Height));
 }
        private void HandleListViewClick(ListView lv, System.Drawing.Rectangle r)
        {
            var lvir = GetBasicRect(lv);
            var found = false;

            foreach (ListViewItem lvi in lv.Items)
            {
                var rr = new System.Drawing.Rectangle(lvir.X + lvi.Bounds.X, lvir.Y + lvi.Bounds.Y,
                                                      lvir.Width + lvi.Bounds.Width, lvir.Height + lvi.Bounds.Height);
                if (rr.IntersectsWith(r))
                {
                    found = true;
                    lvi.Selected = true;
                }
            }

            if (found == false)
            {
                foreach (ListViewItem lvi in lv.Items)
                    lvi.Selected = false;
            }
        }
        /// <summary>
        /// IMPORTANT: insert into your mouse update function
        /// </summary>
        /// <param name="gt"></param>
        /// <param name="ms"></param>
        /// <returns></returns>
        public Control MouseUpdate(GameTime gt)
        {
            MC.UpdateButtons(Mouse.GetState(), gt);

            var ms = Mouse.GetState();
            var currposrect = new Rectangle(ms.X, ms.Y, 1, 1);
            var currposrect2 = new System.Drawing.Rectangle(ms.X, ms.Y, 1, 1);

            if (ms.LeftButton != ButtonState.Pressed)
            {
                MC.SwitchStates();
                return null;
            }

            Control ret = null;
            foreach (var c in GetControls(FormInit))
            {
                if (c == null || c.Enabled == false)
                    continue;

                var l = GetBasicRect(c);

                if (l.Intersects(currposrect))
                {
                    //press, not hold
                    if (MC.ButtonsDown.ContainsKey(MouseClass.mouseButtons.left))
                    {
                        //set selected index for listbox
                        if (c is ListBox)
                        {
                            HandleListboxClick(c as ListBox, currposrect);
                        }
                        else if (c is ListView)
                        {
                            HandleListViewClick(c as ListView, currposrect2);
                        }
                        else if (c is RadioButton)
                        {
                            HandleRadioButtonClick(c as RadioButton, currposrect);
                        }
                        else if (c is CheckBox)
                        {
                            HandleCheckboxClick(c as CheckBox);
                        }
                    }

                    if (c is TrackBar)
                    {
                        HandleTrackBarClick(c as TrackBar, currposrect);
                    }

                    ret = c;
                    break;
                }
            }

            MC.SwitchStates();
            return ret;
        }
示例#6
0
        protected override void OnMove(EventArgs e)
        {
            frame.Position = this.PointToScreen(new DPoint(0, 0)).PxVector();

            MaximizedBounds = new System.Drawing.Rectangle(new DPoint(0, 0), Screen.FromControl(this).WorkingArea.Size);
        }