コード例 #1
0
        /// <summary>
        /// Unload our layer content
        /// </summary>
        public override void UnloadContent()
        {
            if (WhiteBrush != null)
            {
                WhiteBrush.Dispose();
            }
            WhiteBrush = null;

            if (LightGreenBrush != null)
            {
                LightGreenBrush.Dispose();
            }
            LightGreenBrush = null;

            if (RedBrush != null)
            {
                RedBrush.Dispose();
            }
            RedBrush = null;

            if (QuestionBrush != null)
            {
                QuestionBrush.Dispose();
            }
            QuestionBrush = null;

            if (CorrectBrush != null)
            {
                CorrectBrush.Dispose();
            }
            CorrectBrush = null;

            if (IncorrectBrush != null)
            {
                IncorrectBrush.Dispose();
            }
            IncorrectBrush = null;

            if (BlackBrush != null)
            {
                BlackBrush.Dispose();
            }
            BlackBrush = null;

            if (QuestionFormat != null && !QuestionFormat.IsDisposed)
            {
                QuestionFormat.Dispose();
            }
            if (AnswerFormat != null && !AnswerFormat.IsDisposed)
            {
                AnswerFormat.Dispose();
            }
            if (KeyIndicatorFormat != null && !KeyIndicatorFormat.IsDisposed)
            {
                KeyIndicatorFormat.Dispose();
            }
        }
コード例 #2
0
        public virtual void Dispose()
        {
            _d2dFactory?.Dispose();
            DWriteFactory?.Dispose();
            WicFactory.Dispose();
            WicFormatConverter.Dispose();

            WhiteBrush.Dispose();
            RedBrush.Dispose();
            DeviceContext?.Dispose();
            _d2dDevice?.Dispose();
        }
コード例 #3
0
        public void DrawingGraphics(Geometry positiveGroup, Geometry negativeGroup, bool IsDrawingLine, double CustomDrawLineWidth, DoubleCollection guidlinesX, DoubleCollection guidlinesY)
        {
            positiveGroup.Freeze();
            negativeGroup.Freeze();


            DrawingVisual drawingVisual = new DrawingVisual();

            RedBrush.Freeze();
            GreenBrush.Freeze();
            Pen RedPen   = new Pen(RedBrush, CustomDrawLineWidth);
            Pen GreenPen = new Pen(GreenBrush, CustomDrawLineWidth);

            RedPen.Freeze();
            GreenPen.Freeze();
            DrawingContext drawingContext = drawingVisual.RenderOpen();

            drawingContext.PushGuidelineSet(new GuidelineSet(guidlinesX.ToArray(), guidlinesY.ToArray()));
            if (IsDrawingLine)
            {
                drawingContext.DrawGeometry(null, RedPen, positiveGroup);
                drawingContext.DrawGeometry(null, GreenPen, negativeGroup);
            }
            else
            {
                Brush white = Brushes.White;
                white.Freeze();

                drawingContext.DrawGeometry(white, RedPen, positiveGroup);
                drawingContext.DrawGeometry(GreenBrush, GreenPen, negativeGroup);
            }
            drawingContext.Pop();
            drawingContext.Close();

            BitmapCache bc = new BitmapCache();

            bc.SnapsToDevicePixels = true;
            bc.Freeze();
            drawingVisual.CacheMode = bc;
            this.AddVisualChild(drawingVisual);
        }
コード例 #4
0
        /// <summary>
        /// 画折线
        /// </summary>
        /// <param name="LineGroup"></param>
        /// <param name="CustomDrawLineWidth"></param>
        public void DrawingGraphics(Geometry LineGroup, double CustomDrawLineWidth)
        {
            LineGroup.Freeze();
            DrawingVisual drawingVisual = new DrawingVisual();

            RedBrush.Freeze();
            GreenBrush.Freeze();
            Pen RedPen   = new Pen(RedBrush, CustomDrawLineWidth);
            Pen GreenPen = new Pen(GreenBrush, CustomDrawLineWidth);

            RedPen.Freeze();
            GreenPen.Freeze();
            DrawingContext drawingContext = drawingVisual.RenderOpen();

            drawingContext.DrawGeometry(null, RedPen, LineGroup);
            drawingContext.Close();
            BitmapCache bc = new BitmapCache();

            bc.SnapsToDevicePixels = true;
            bc.Freeze();
            drawingVisual.CacheMode = bc;
            this.AddVisualChild(drawingVisual);
        }
コード例 #5
0
        /// <summary>
        /// Load our layer content
        /// </summary>
        public override void LoadContent()
        {
            if (WhiteBrush != null)
            {
                WhiteBrush.Dispose();
            }
            WhiteBrush = new SolidColorBrush(Surface.RenderTarget2D, SharpDX.Color.White);

            if (LightGreenBrush != null)
            {
                LightGreenBrush.Dispose();
            }
            LightGreenBrush = new SolidColorBrush(Surface.RenderTarget2D, SharpDX.Color.LightGreen);

            if (RedBrush != null)
            {
                RedBrush.Dispose();
            }
            RedBrush = new SolidColorBrush(Surface.RenderTarget2D, SharpDX.Color.Red);

            if (QuestionBrush != null)
            {
                QuestionBrush.Dispose();
            }
            QuestionBrush = new SolidColorBrush(Surface.RenderTarget2D, new Color(MM_Repository.Training.QuestionTextColor.R, MM_Repository.Training.QuestionTextColor.G, MM_Repository.Training.QuestionTextColor.B, MM_Repository.Training.QuestionTextColor.A));

            if (CorrectBrush != null)
            {
                CorrectBrush.Dispose();
            }
            CorrectBrush = new SolidColorBrush(Surface.RenderTarget2D, new Color(MM_Repository.Training.CorrectAnswerColor.R, MM_Repository.Training.CorrectAnswerColor.G, MM_Repository.Training.CorrectAnswerColor.B, MM_Repository.Training.CorrectAnswerColor.A));

            if (IncorrectBrush != null)
            {
                IncorrectBrush.Dispose();
            }
            IncorrectBrush = new SolidColorBrush(Surface.RenderTarget2D, new Color(MM_Repository.Training.IncorrectAnswerColor.R, MM_Repository.Training.IncorrectAnswerColor.G, MM_Repository.Training.IncorrectAnswerColor.B, MM_Repository.Training.IncorrectAnswerColor.A));

            if (BlackBrush != null)
            {
                BlackBrush.Dispose();
            }
            BlackBrush = new SolidColorBrush(Surface.RenderTarget2D, SharpDX.Color.Black);


            if (QuestionFormat != null && !QuestionFormat.IsDisposed)
            {
                QuestionFormat.Dispose();
            }
            QuestionFormat = new TextFormat(Surface.FactoryDirectWrite, MM_Repository.Training.QuestionFont.Name, MM_Repository.Training.QuestionFont.Size)
            {
                TextAlignment = TextAlignment.Leading, ParagraphAlignment = ParagraphAlignment.Near
            };

            if (AnswerFormat != null && !AnswerFormat.IsDisposed)
            {
                AnswerFormat.Dispose();
            }
            AnswerFormat = new TextFormat(Surface.FactoryDirectWrite, MM_Repository.Training.AnswerFont.Name, MM_Repository.Training.AnswerFont.Size)
            {
                TextAlignment = TextAlignment.Leading, ParagraphAlignment = ParagraphAlignment.Near
            };


            if (KeyIndicatorFormat != null && !KeyIndicatorFormat.IsDisposed)
            {
                KeyIndicatorFormat.Dispose();
            }
            KeyIndicatorFormat = new TextFormat(Surface.FactoryDirectWrite, MM_Repository.OverallDisplay.KeyIndicatorLabelFont.Name, MM_Repository.OverallDisplay.KeyIndicatorLabelFont.Size)
            {
                TextAlignment = TextAlignment.Leading, ParagraphAlignment = ParagraphAlignment.Near
            };
        }