xamSyntaxEditor ™ は、テキスト編集領域の端に沿った任意の 4 箇所での余白の配置をサポートしています。任意の 4 箇所 (上下左右) に余白を配置できるようにするため、 MarginBase クラスは ISupportPositioning インターフェイスを実装します。一般的に、左右に配置された余白を使ってテキスト行に関連する情報を表示し、上下に配置された余白を使ってテキスト列に関連する情報を表示します。
xamSyntaxEditor は、すべての余白を適切な場所に配置します。xamSyntaxEditor はまた、 CreatePresenter メソッドを起動し、関連する DocumentViewBase を引数として渡すことによって、すべての余白がプレゼンターを持つようにします。DocumentViewBase
はプレゼンターに、ビューとコントロール情報にアクセスするために必要とされるコンテキストを提供します (たとえば、表示された行へのアクセス、さまざまなユーザー インタラクション用のイベントなど)。
以下の手順は、カスタム余白を作成する方法を示しています。
MarginBase
クラスから拡張することによって、カスタムの Margin クラスを作成します。
MarginBase
の Location プロパティをオーバーライドして、希望の場所に余白を配置します。
MarginBase
の Key プロパティをオーバーライドして、余白に一意のキーを与えます。これによって他の余白は、あなたの余白に相対して位置付けることができます。
MarginBase
の CreatePresenter
メソッドをオーバーライドして、余白にプレゼンターを提供します。プレゼンターは、 FrameworkElement から拡張する任意のクラスになり得ます。
カスタムの余白プレゼンターは通常、 DocumentViewBase.LayoutChanged イベントをオーバーライドして、カスタム余白のコンテンツの描画をトリガします。
xamSyntaxEditor の CustomMargins コレクションに余白を追加します。
このトピックについては、以下のトピックも参照してください。