Beispiel #1
0
 private void canvasBmp_MouseMove(object sender, MouseEventArgs e)
 {
     if (e.LeftButton == MouseButtonState.Pressed)
     {
         Point      curPos = e.GetPosition(imgCab);
         string     selPropName;
         OnOffGauge g = GetSelectedGauge(out selPropName);
         if (g != null && Math.Abs(curPos.X - lastDown.X) > MIN_MOUSE_MOVE_DRAG / scale && Math.Abs(curPos.Y - lastDown.Y) > MIN_MOUSE_MOVE_DRAG / scale)
         {
             int newX      = (int)(Math.Min(curPos.X, lastDown.X));
             int newY      = (int)(Math.Min(curPos.Y, lastDown.Y));
             int newWidth  = (int)(Math.Abs(curPos.X - lastDown.X));
             int newHeight = (int)(Math.Abs(curPos.Y - lastDown.Y));
             if (selPropName == PropertySupport.ExtractPropertyName(() => g.OnPosition))
             {
                 g.OnPosition.X = newX;
                 g.OnPosition.Y = newY;
             }
             else if (selPropName == PropertySupport.ExtractPropertyName(() => g.OffPosition))
             {
                 g.OffPosition.X = newX;
                 g.OffPosition.Y = newY;
             }
             else
             {
                 g.Position.X = newX;
                 g.Position.Y = newY;
             }
             g.Dimension.Width  = newWidth;
             g.Dimension.Height = newHeight;
             RefreshDisplayedRects();
         }
     }
 }
Beispiel #2
0
        private void canvasBmp_MouseDown(object sender, MouseButtonEventArgs e)
        {
            lastDown = e.GetPosition(imgCab);
            string     selPropName;
            OnOffGauge g = GetSelectedGauge(out selPropName);

            if (g != null)
            {
                if (selPropName == null || selPropName == PropertySupport.ExtractPropertyName(() => g.Position))
                {
                    g.Position.X = (int)(lastDown.X);
                    g.Position.Y = (int)(lastDown.Y);
                }
                else if (selPropName == PropertySupport.ExtractPropertyName(() => g.OnPosition))
                {
                    g.OnPosition.X = (int)(lastDown.X);
                    g.OnPosition.Y = (int)(lastDown.Y);
                }
                else if (selPropName == PropertySupport.ExtractPropertyName(() => g.OffPosition))
                {
                    g.OffPosition.X = (int)(lastDown.X);
                    g.OffPosition.Y = (int)(lastDown.Y);
                }
                RefreshDisplayedRects();
            }
        }
Beispiel #3
0
        private void RefreshDisplayedRects()
        {
            canvasBmp.Children.RemoveRange(1, canvasBmp.Children.Count - 1);

            string     propName;
            OnOffGauge g = GetSelectedGauge(out propName);

            if (g != null)
            {
                AddRect(g.Position.X, g.Position.Y, g.Dimension.Width, g.Dimension.Height, Brushes.Gray);

                if (g.Position.X != g.OffPosition.X || g.Position.Y != g.OffPosition.Y)
                {
                    AddRect(g.OffPosition.X, g.OffPosition.Y, g.Dimension.Width, g.Dimension.Height, Brushes.Red);
                }

                if (g.Position.X != g.OnPosition.X || g.Position.Y != g.OnPosition.Y)
                {
                    AddRect(g.OnPosition.X, g.OnPosition.Y, g.Dimension.Width, g.Dimension.Height, Brushes.Green);
                }
            }
        }