创建样式以在代码后面旋转轴标签 [英] Create style to rotate axis label in code behind

查看:349
本文介绍了创建样式以在代码后面旋转轴标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要创建一个旋转x轴标签的样式。
我找到这个例子:轻松旋转Silverlight / WPF工具箱图表的轴标签旋转文字如何在代码中更改AxisLabelStyle?

I need to create a style that rotates the x axis labels. I've found this examples: Easily rotate the axis labels of a Silverlight/WPF Toolkit chart and Rotating Text and How to change AxisLabelStyle in code behind?

我需要在代码中这样做。所以我试过这个:

I need to do this in the code behind. So I've tried this:

var labelStyle = new Style(typeof(AxisLabel));
var rotate = new Setter(RotateTransform.AngleProperty, 270);
var setter = new Setter(AxisLabel.RenderTransformProperty, rotate);

labelStyle.Setters.Add(setter);
(xSerie.IndependentAxis as CategoryAxis).AxisLabelStyle = labelStyle;

我想我在RenderTransformProperty上犯了一些错误。

I think I'm doing some mistake on the RenderTransformProperty.

我要做什么?谢谢!

编辑:
只是将我的代码更新为:

O just updated my code to:

var labelStyle = new Style(typeof(AxisLabel));  
var setter = new Setter(AxisLabel.RenderTransformProperty, new RotateTransform(){Angle = -60, CenterX = 40, CenterY = 30});  
labelStyle.Setters.Add(setter);

现在可以正常工作了。

推荐答案

如果你是从代码这样做,你应该专注于操作变换集合。

If you are doing this from code, you should focus on manipulating the transform collection.

var group = new TransformGroup();
group.Children.Add(new RotateTransform() { Angle = 270 });
control.RenderTransform = group;

或者,将转换添加到现有的 RenderTransform

Alternatively, add your transform to an existing RenderTransform:

TransformGroup renderTransform = control.RenderTransform as TransformGroup;
if (renderTransform != null)
{
    RotateTransform rotate = renderTransform.Children
         .FirstOrDefault(o => o is RotateTransform as RotateTransform 
    if(rotate == null)
    {
         rotate = new RotateTransform();
         renderTransform.Children.Add(rotate);
    }
    rotate.Angle = 270;
}

哦...你也应该考虑你的 RenderTransformOrigin

oh... You should also think about your RenderTransformOrigin:

control.RenderTransformOrigin = new Point(0.5, 0.5);

这篇关于创建样式以在代码后面旋转轴标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆