3

如何在 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”。)

提前致谢!

4

1 回答 1

3

如果你从头开始创建一个新控件,它的RenderTransform属性将是一个Identity MatrixTransform,所以你不能将它转换为CompositeTransform. 你必须这样做:

dots.RenderTransform = new CompositeTransform { TranslateY = 20 };
于 2014-09-30T08:58:47.877 回答