我需要创建一个旋转 x 轴标签的样式。
我找到了这个例子:轻松旋转 Silverlight/WPF Toolkit 图表的轴标签 http://blogs.msdn.com/b/delay/archive/2010/03/06/turn-your-head-and-check-out-this-post-how-to-easily-rotate-the-axis-labels-of-a-silverlight-wpf-toolkit-chart.aspx and 旋转文本 http://forums.silverlight.net/forums/p/170808/385146.aspx#385600 and 如何在后面的代码中更改轴标签样式? https://stackoverflow.com/questions/5329710/silverlight-how-to-change-axislabelstyle-in-code-behind
我需要在后面的代码中执行此操作。所以我尝试过这个:
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;
我认为我在 RenderTransform 属性上犯了一些错误。
我必须做什么?谢谢!
编辑:
O刚刚将我的代码更新为:
var labelStyle = new Style(typeof(AxisLabel));
var setter = new Setter(AxisLabel.RenderTransformProperty, new RotateTransform(){Angle = -60, CenterX = 40, CenterY = 30});
labelStyle.Setters.Add(setter);
现在效果很好!
如果您通过代码执行此操作,则应该专注于操作转换集合。
var group = new TransformGroup();
group.Children.Add(new RotateTransform() { Angle = 270 });
control.RenderTransform = group;
或者,将您的转换添加到现有的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
:
control.RenderTransformOrigin = new Point(0.5, 0.5);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)