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; }
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; }