2014-09-30 8 views
3

이 XAML 코드를 C#으로 어떻게 코드화 할 수 있습니까? C#에서 CompositeTransform을 사용하는 방법?

<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.Windows.Media.CompositeTransform'를 입력 유형 'System.Windows.Media.MatrixTransform'의 개체를 캐스팅 할 수 없습니다 System.InvalidCastException을 (GET .)

미리 감사드립니다.

답변

3

당신은 처음부터 새 컨트롤을 만드는 경우, 그것은 당신이 CompositeTransform에 캐스팅 할 수 있도록 RenderTransform 속성, 신원MatrixTransform 될 것입니다. 다음과 같이해야합니다.

dots.RenderTransform = new CompositeTransform { TranslateY = 20 }; 
+1

고마워요! 매력처럼 작동합니다! :디 – AshleyT