Как использовать 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 };
Другие вопросы по тегам