2012-07-19 2 views
1

에 여백을 색칠 :나는 다음과 같은 방법으로 내 문서 편집기의 왼쪽 (중단 점을 추가하는 경우) 여백을 추가 한 Avalonedit

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()); 
      ... 

마진이 성공적으로 추가되지만 지금은 색상 싶습니다 여백의 배경. 이것을 어떻게 할 수 있습니까?

답변

3

http://community.sharpdevelop.net/forums/t/16047.aspx

당신은 OnRender를 오버라이드 (override) 할 것 : 또한

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 컨트롤을 사용할 수 있습니다. AbstractMarginTextViewDocument 속성을 제공하며 최신 상태로 유지합니다. 필요하지 않거나 직접 구현할 수있는 경우 다른 기본 클래스를 사용할 수 있습니다.