2017-09-16 10 views
1

次のコードは、関連するGlyphRunオブジェクトを(200,200)のオフセットで動作させ、アニメーション化し、テキストを赤色矢印で示されるパスに沿って秒:WPF - TranslateTransformを使用しないジオメトリアニメーションのためのより簡単なメソッド

Geometry grg = _glyphRun.BuildGeometry();       
drawingContext.DrawGeometry(Brushes.Black, null, grg);    
grg.Transform = new TranslateTransform(0, 0);      
Duration duration = new Duration(new TimeSpan(0, 0, 0, 1, 250));  
DoubleAnimation anim = new DoubleAnimation(200, duration);   
anim.EasingFunction = new QuarticEase();        
grg.Transform.BeginAnimation(TranslateTransform.XProperty, anim); 
grg.Transform.BeginAnimation(TranslateTransform.YProperty, anim); 

enter image description here

しかし、私は、そのゼロ・オフセット点の、関与しているTranslateTransformの必要性を理解していません。

上記のアニメーションを簡単な方法で実現できますか?

答えて

1

アニメーション化されているのはTranslateTransformのプロパティです。オブジェクトは(0, 0)に初期化されますが、アニメーションが進行すると、そのオブジェクトのXおよびYプロパティが変更されます。実際、グリフがアニメーションごとに繰り返し移動されるのはこの変更です。

シンプルな方法で達成できるかどうかは、うーん&こんにちは、それはちょっと見ている人の目のようです。個人的には、コードビハインドを書く代わりに、XAMLでアニメーションを宣言するのが簡単であると考えています。その意味では、確かに…それは絶対にもっと簡単に行うことができます。その向こう

描かれていますそのすべては単純なテキストであれば、CanvasTextBlockを配置し、TextBlockオブジェクトのCanvas.LeftCanvas.Topプロパティも単純に考えられるであろうことをアニメーション化するように私には思えます。率直に言えば、他の多くのオプションがあります。がより単純に考えられます。あなたの「より単純な」アイデアが何であるかに応じて、そうではありません。

関連する問題