如何在C#中使用CompositeTransform
本文关键字:CompositeTransform | 更新日期: 2023-09-27 18:25:06
如何用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.Window.Media.CompositeTransform"。)
提前感谢!
如果从头开始创建新控件,它的RenderTransform
属性将是IdentityMatrixTransform
,因此不能将其强制转换为CompositeTransform
。你必须这样做:
dots.RenderTransform = new CompositeTransform { TranslateY = 20 };