2
実行時にDoubleAnimation
をフレームワーク要素に適用しています。ここでは、コードスニペットは次のとおりです。DoubleAnimation/XAMLを生成しようとするとエラーが発生する
foreach (FrameworkElement objInnerElement in objFrameWorkElement)
{
Point ElementPosition = new Point(Canvas.GetLeft(objInnerElement), Canvas.GetTop(objInnerElement));
DoubleAnimation db = new DoubleAnimation();
//db.From = objMoveIn.From;
db.AutoReverse = objMoveIn.AutoReverse;
if (objMoveIn.Repeat)
db.RepeatBehavior = RepeatBehavior.Forever;
db.Duration = TimeSpan.FromSeconds(objMoveIn.AnimationDuration);
Storyboard story = new Storyboard();
if (objMoveIn.ddlDirection.SelectedIndex == 0)
{
//(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)
Storyboard.SetTargetProperty(db, new PropertyPath("(FrameworkElement.RenderTransform).(TranslateTransform.X)"));
//Storyboard.SetTargetProperty(db, new PropertyPath(TranslateTransform.XProperty));
db.From = 0 - ElementPosition.X;
db.To = 0;
}
else
{
Storyboard.SetTargetProperty(db, new PropertyPath("(FrameworkElement.RenderTransform).(TranslateTransform.Y)"));
//Storyboard.SetTargetProperty(db, new PropertyPath(TranslateTransform.YProperty));
db.From = 0 - ElementPosition.X;
db.To = 0;
}
story.Children.Add(db);
BeginStoryboard beginstoryboard = new BeginStoryboard();
beginstoryboard.Storyboard = story;
TranslateTransform oTransform = objInnerElement.RenderTransform as TranslateTransform;
if (oTransform == null)
{
oTransform = new TranslateTransform();
oTransform.X = 0;
oTransform.Y = 0;
objInnerElement.RenderTransform = oTransform;
}
if (objMoveIn.ddlDirection.SelectedIndex == 0)
oTransform.BeginAnimation(TranslateTransform.XProperty, db);
else
oTransform.BeginAnimation(TranslateTransform.YProperty, db);
Style objStyle = new Style();
EventTrigger objEventTrigger = new EventTrigger(FrameworkElement.LoadedEvent);
objEventTrigger.Actions.Add(beginstoryboard);
objStyle.Triggers.Add(objEventTrigger);
objInnerElement.Style = objStyle;
}
アニメーションが正常に動作しますが、私の問題は、私は、この適用された枠組み要素
string shapestring = XamlWriter.Save(element);
StringReader stringReader = new StringReader(shapestring);
XmlTextReader xmlTextReader = new XmlTextReader(stringReader);
Element DeepCopyobject = (Element)XamlReader.Load(xmlTextReader);
からXAMLを生成しようとしたとき、それは以下のようにエラーをスローしていることである:
{"文字列 'RenderTransform。(TranslateTransform.X)を変換できません' 属性 'TargetProperty'に オブジェクトタイプ 'System.Windows.PropertyPath'。 プロパティパスが無効です。 Can not 解決型の名前 'TranslateTransform'できません。オブジェクト 'System.Windows.Media.Animation.DoubleAnimation' でのエラー、
私を助けてください。
誰か専門家ですか?私を助けてください – Ronak