Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Avalonedit上着色边距_C#_.net_Wpf_Margin_Avalonedit - Fatal编程技术网

C# 在Avalonedit上着色边距

C# 在Avalonedit上着色边距,c#,.net,wpf,margin,avalonedit,C#,.net,Wpf,Margin,Avalonedit,我已按以下方式在TextEditor的左侧添加了边距(用于添加断点): public partial class LogicSimViewCodeWPFCtrl : UserControl { private class BreakPointMargin : AbstractMargin { private const int margin = 20; protected override HitTestResult HitTestCore(Po

我已按以下方式在TextEditor的左侧添加了边距(用于添加断点):

public partial class LogicSimViewCodeWPFCtrl : UserControl
    {

private class BreakPointMargin : AbstractMargin
    {
        private const int margin = 20;
        protected override HitTestResult HitTestCore(PointHitTestParameters hitTestParameters)
        {
            return new PointHitTestResult(this, hitTestParameters.HitPoint);
        }

        protected override Size MeasureOverride(Size availableSize)
        {
            return new Size(margin, 0);
        }
    }
}

    private void LogicCodeInit()
    {
        try
        {
            TxtEditCodeViewer.TextArea.LeftMargins.Insert(0, new BreakPointMargin());
            ...
边距添加成功,但现在我想给边距的背景上色。我如何才能做到这一点?

您必须重写
OnRender

    protected override void OnRender(DrawingContext drawingContext)
    {
        Size renderSize = this.RenderSize;
        drawingContext.DrawRectangle(SystemColors.ControlBrush, null,
                                     new Rect(0, 0, renderSize.Width, renderSize.Height));
此外,您不需要从
AbstractMargin
派生-您可以使用任何想要的WPF控件
AbstractMargin
只提供
TextView
Document
属性,并使它们保持最新。如果您不需要这些或可以自己实现它们,您可以使用另一个基类。

您必须在渲染时覆盖
OnRender

    protected override void OnRender(DrawingContext drawingContext)
    {
        Size renderSize = this.RenderSize;
        drawingContext.DrawRectangle(SystemColors.ControlBrush, null,
                                     new Rect(0, 0, renderSize.Width, renderSize.Height));
此外,您不需要从
AbstractMargin
派生-您可以使用任何想要的WPF控件
AbstractMargin
只提供
TextView
Document
属性,并使它们保持最新。如果您不需要这些,或者可以自己实现它们,那么您可以使用另一个基类