本文整理汇总了C#中Axis.BuildATextBlock方法的典型用法代码示例。如果您正苦于以下问题:C# Axis.BuildATextBlock方法的具体用法?C# Axis.BuildATextBlock怎么用?C# Axis.BuildATextBlock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Axis
的用法示例。
在下文中一共展示了Axis.BuildATextBlock方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DrawAxis
private void DrawAxis(Axis axis, Point longestLabel)
{
var isX = Equals(axis, AxisX);
var max = isX ? Max.X : Max.Y;
var min = isX ? Min.X : Min.Y;
var s = isX ? S.X : S.Y;
var maxval = axis.Separator.IsEnabled || axis.ShowLabels ? max + (axis.IgnoresLastLabel ? -1 : 0) : min - 1;
var formatter = GetFormatter(axis);
for (var i = min; i <= maxval; i += s)
{
if (axis.Separator.IsEnabled)
{
var l = new Line
{
Stroke = new SolidColorBrush {Color = axis.Separator.Color}, StrokeThickness = axis.Separator.Thickness
};
if (isX)
{
var x = ToPlotArea(i, AxisTags.X);
l.X1 = x;
l.X2 = x;
l.Y1 = ToPlotArea(Max.Y, AxisTags.Y);
l.Y2 = ToPlotArea(Min.Y, AxisTags.Y);
}
else
{
var y = ToPlotArea(i, AxisTags.Y);
l.X1 = ToPlotArea(Min.X, AxisTags.X);
l.X2 = ToPlotArea(Max.X, AxisTags.X);
l.Y1 = y;
l.Y2 = y;
}
Canvas.Children.Add(l);
Shapes.Add(l);
}
if (axis.ShowLabels)
{
var text = formatter(i);
var label = axis.BuildATextBlock(0);
label.Text = text;
var fl = new FormattedText(text, CultureInfo.CurrentUICulture, FlowDirection.LeftToRight, new Typeface(axis.FontFamily, axis.FontStyle, axis.FontWeight, axis.FontStretch), axis.FontSize, Brushes.Black);
Canvas.Children.Add(label);
Shapes.Add(label);
var top = 0;
var left = 0;
if (isX)
{
Canvas.SetLeft(label, ToPlotArea(i, AxisTags.X) - fl.Width*.5 + XOffset);
Canvas.SetTop(label, PlotArea.Y + PlotArea.Height + 5);
}
else
{
Canvas.SetLeft(label, PlotArea.X - fl.Width -5);
Canvas.SetTop(label, ToPlotArea(i, AxisTags.Y) - longestLabel.Y*.5 + YOffset);
}
}
}
}