2017-03-02 6 views
2

私は、ウォーターマークに似た、軸のパンやズームとは独立した方法でプロットエリアの特定の場所に配置されたTextAnnotationを追加したいと思います。OxyPlotでは、AxotにバインドされていないPlotAreaに関連するTextAnnotationを追加する方法はありますか?

TextAnnotationの位置はDataPointによってのみ決定でき、ImageAnnotationは位置決めのXおよびYのプロパティを持っていることに気付きました。

答えて

1

カスタムを作成するのは簡単です:

public class CustomTextAnnotation : Annotation 
{ 
    public CustomTextAnnotation() 
    { } 

    public string Text { get; set; } 
    public double X { get; set; } 
    public double Y { get; set; } 

    public override void Render(IRenderContext rc) 
    { 
     base.Render(rc); 
     double pX = PlotModel.PlotArea.Left + X; 
     double pY = PlotModel.PlotArea.Top + Y; 
     rc.DrawMultilineText(new ScreenPoint(pX, pY), Text, TextColor, Font, FontSize, FontWeight); 
    } 
} 

また、あなたが他を追加できることに注意してください。:

plotModel.Annotations.Add(new CustomTextAnnotation() { 
      Text = "A B C", 
      X = 110, 
      Y = 10, 
      Font = "Times New Roman", 
      FontSize = 12, 
      TextColor = OxyColors.Black }); 

など、あなたはフォント、のFontSizeを設定する必要があることに注意してください境界線の色や他のものなどのプロパティも、しかし、物事は複雑になるかもしれない(私は試していない)。

希望します。

関連する問題