コード例 #1
0
        // Capture the mouse event and hit test the coordinate point value against
        // the child visual objects.
        void MyVisualHost_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            // Retreive the coordinates of the mouse button event.
            if (selectedVisual != null)
                selectedVisual.Opacity = 1.0;

            selectedVisual = null;
        }
コード例 #2
0
        private MyDrawingVisual CreateDrawingVisualROIs(KeyValuePair<string, Point> ptInfo)
        {
            MyDrawingVisual drawingVisual = new MyDrawingVisual();
            drawingVisual.StartPos = ptInfo.Value;
            DrawingContext drawingContext = drawingVisual.RenderOpen();
            drawingVisual.Name = ptInfo.Key;
            Point pos = ptInfo.Value;
            int sz = 10;
            Point ptUp = new Point(pos.X, pos.Y- sz);
            Point ptRight = new Point(pos.X + sz, pos.Y);
            Point ptDown = new Point(pos.X, pos.Y + sz);
            Point ptLeft = new Point(pos.X - sz, pos.Y);

            #region draw anchors for calibration
            if (m_IsCalibrating)
            {
                string s = string.Format("M {0},{1} L {2},{3} {4},{5} {6},{7} {8},{9}",
                                ptUp.X, ptUp.Y, ptLeft.X, ptLeft.Y,
                                ptDown.X, ptDown.Y, ptRight.X, ptRight.Y, ptUp.X, ptUp.Y);

                Brush anchorFill = Brushes.YellowGreen;
                Brush anchorBorder = Brushes.Black;

                anchorBorder = Brushes.Red;
                anchorFill = Brushes.LightGreen;
                int index = int.Parse(GetNumber(ptInfo.Key));
                FormattedText text = new FormattedText(index.ToString(),
                CultureInfo.CurrentCulture,
                FlowDirection.LeftToRight,
                new Typeface("SimSun"),
                16,
                Brushes.Black);
                if (drawingVisual.Name.IndexOf(stringResUtility.ROITopLeft) != -1)
                    drawingContext.DrawText(text, new Point(pos.X + 10, pos.Y));

                Geometry geometry = Geometry.Parse(s);
                drawingContext.DrawGeometry(anchorFill, new Pen(anchorBorder, 2), geometry);
            }
            #endregion
            drawingContext.Close();

            return drawingVisual;
        }
コード例 #3
0
 internal void onMouseUp()
 {
     if (selectedVisual != null)
         selectedVisual.Opacity = 1.0;
     selectedVisual = null;
     ReleaseMouseCapture();
 }
コード例 #4
0
 private MyDrawingVisual CreateDrawingVisualMarker(KeyValuePair<string, Point> ptInfo, bool bHigh)
 {
     MyDrawingVisual drawingVisual = new MyDrawingVisual();
     DrawingContext drawingContext = drawingVisual.RenderOpen();
     drawingVisual.StartPos = ptInfo.Value;
     drawingVisual.Name = ptInfo.Key;
     Point pos = ptInfo.Value;
     Point ptUp = new Point(pos.X - 10, pos.Y - 10);
     Point ptDown = new Point(pos.X - 10, pos.Y + 10);
     Point ptRight = new Point(pos.X + 10, pos.Y);
     string s = string.Format("M {0},{1} {2},{3} {4},{5} {0},{1}", ptUp.X, ptUp.Y, ptDown.X, ptDown.Y, ptRight.X, ptRight.Y);
     Geometry geometry = Geometry.Parse(s);
     Brush brush = bHigh ? Brushes.Red : Brushes.SeaGreen;
     drawingContext.DrawGeometry(brush, new Pen(Brushes.Yellow, 1), geometry);
     drawingContext.Close();
     return drawingVisual;
 }
コード例 #5
0
        // If a child visual object is hit, toggle its opacity to visually indicate a hit.
        public HitTestResultBehavior myCallback(HitTestResult result)
        {
            selectedVisual = null;
            if (result.VisualHit.GetType() == typeof(MyDrawingVisual))
            {
                MyDrawingVisual hitViusal = (MyDrawingVisual)(result.VisualHit);

                ((DrawingVisual)result.VisualHit).Opacity = 0.2;
                selectedVisual = (MyDrawingVisual)result.VisualHit;
            }
            // Stop the hit test enumeration of objects in the visual tree.
            return HitTestResultBehavior.Stop;
        }