如何在C#中使用CompositeTransform?

如何在C#中编码此XAML代码?

<TextBlock Text="..." RenderTransformOrigin="0.5,0.5">
                    <TextBlock.RenderTransform>
                        <CompositeTransform TranslateY="-25"/>
                    </TextBlock.RenderTransform>
                </TextBlock>

我以这种方式尝试过:

private TextBlock dots;
dots = new TextBlock();
dots.Text = "...";
dots.RenderTransformOrigin = new Point(0.5, 0.5); 
(dots.RenderTransform as CompositeTransform).TranslateY = 20;

但是我得到了System.NullReferenceException.
我也尝试过这种方式:

var ct = (CompositeTransform)dots.RenderTransform;
            ct.TranslateY = 20;

但是我得到一个System.InvalidCastException(无法将类型为“ System.Windows.Media.MatrixTransform”的对象转换为类型为“ System.Windows.Media.CompositeTransform”.)

提前致谢!

解决方法:

如果要从头开始创建新控件,则它的RenderTransform属性将是Identity MatrixTransform,因此无法将其强制转换为CompositeTransform.您必须这样做:

dots.RenderTransform = new CompositeTransform { TranslateY = 20 };
上一篇:easyui 上传文件代码


下一篇:WPF应用程序的Windows 8 Tile图标?