Как использовать CompositeTransform в C#?
Как я могу кодировать этот код XAML в C#?
<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'.)
Заранее спасибо!
1 ответ
Решение
Если вы создаете новый элемент управления с нуля, это RenderTransform
собственность будет тождеством MatrixTransform
так что вы не можете бросить его CompositeTransform
, Вы должны сделать это так:
dots.RenderTransform = new CompositeTransform { TranslateY = 20 };