예제 #1
0
 public CSharpSourceEditorScrollBarMarker(CSharpSourceEditor editor)
 {
     this.Editor = editor;
     this.Width  = 18;
     this.HorizontalAlignment = Avalonia.Layout.HorizontalAlignment.Right;
     this.IsHitTestVisible    = false;
 }
 internal CSharpSourceEditorCaret(CSharpSourceEditor editor)
 {
     this.Editor           = editor;
     this.IsHitTestVisible = false;
     _caretTimer.Tick     += CaretTimerTick;
     _caretTimer.Interval  = TimeSpan.FromMilliseconds(500);
     _caretTimer.Start();
 }
        public CSharpSourceEditorControl()
        {
            Grid gridContainer = new Grid();

            this.Content = gridContainer;

            ScrollViewer scroller = new ScrollViewer()
            {
                HorizontalScrollBarVisibility = Avalonia.Controls.Primitives.ScrollBarVisibility.Auto, VerticalScrollBarVisibility = Avalonia.Controls.Primitives.ScrollBarVisibility.Auto
            };

            gridContainer.Children.Add(scroller);

            //Panel scrollerContent = new Panel();

            Editor = new CSharpSourceEditor()
            {
            };

            scroller.Content = Editor;

            this.PropertyChanged += (s, e) =>
            {
                if (e.Property == FontSizeProperty)
                {
                    this.Editor.FontSize = (double)e.NewValue;
                    Editor.SelectionLayer.InvalidateVisual();
                    Editor.TextLayer.InvalidateVisual();
                    Editor.CaretLayer.InvalidateVisual();
                    Editor.LineNumbersLayer.InvalidateVisual();
                    Editor.BreakpointsLayer.InvalidateVisual();
                    Editor.LineNumbersWidth = this.CharacterWidth * (Math.Floor(Math.Log10(Editor.Text.Lines.Count)) + 1);
                    Editor.InvalidateMeasure();
                }
            };

            gridContainer.Children.Add(Editor.ScrollBarMarker);

            //gridContainer.Children.Add(Editor.SearchReplace);

            //scrollerContent.Children.Add(editor);

            //scrollerContent.Children.Add(new CSharpSourceEditorCaret(editor));

            //scroller.Content = scrollerContent;
        }
예제 #4
0
        internal CSharpSourceEditorBreakpoints(CSharpSourceEditor editor)
        {
            this.Editor           = editor;
            this.IsHitTestVisible = false;

            PathFigure arrowFigure = new PathFigure()
            {
                IsClosed = true, IsFilled = true, StartPoint = new Point(2, 3.5)
            };

            arrowFigure.Segments.Add(new LineSegment()
            {
                Point = new Point(6, 3.5)
            });
            arrowFigure.Segments.Add(new LineSegment()
            {
                Point = new Point(6, 1)
            });
            arrowFigure.Segments.Add(new LineSegment()
            {
                Point = new Point(11, 6)
            });
            arrowFigure.Segments.Add(new LineSegment()
            {
                Point = new Point(6, 11)
            });
            arrowFigure.Segments.Add(new LineSegment()
            {
                Point = new Point(6, 8.5)
            });
            arrowFigure.Segments.Add(new LineSegment()
            {
                Point = new Point(2, 8.5)
            });

            BreakpointArrowGeometry = new PathGeometry();
            BreakpointArrowGeometry.Figures.Add(arrowFigure);
        }
예제 #5
0
 internal CSharpSourceEditorSelection(CSharpSourceEditor editor)
 {
     this.Editor           = editor;
     this.IsHitTestVisible = false;
 }
예제 #6
0
 internal CSharpSourceEditorLineNumbers(CSharpSourceEditor editor)
 {
     this.Editor = editor;
 }
예제 #7
0
 internal CSharpSourceEditorText(CSharpSourceEditor editor)
 {
     this.Editor           = editor;
     this.IsHitTestVisible = false;
 }