我想在WPF外部完全使用XAML,特别是在XNA应用程序中。到目前为止,我已经管理(很容易,我惊讶地承认)从XAML文件加载我的XNA应用程序中的一些数据。这些问题开始的时候,我决定,我想我的动画类的属性之一......什么也没有发生:(XAML没有WPF - 动画
这里是主类我从XAML文件加载:
[ContentPropertyAttribute("Animation")]
public class Test : FrameworkContentElement
{
public string Text { get; set; }
public Vector2 Position { get; set; }
public Color Color { get; set; }
public Storyboard Animation { get; set; }
public static DependencyProperty RotationProperty =
DependencyProperty.Register("Rotation", typeof(double), typeof(Test), new PropertyMetadata(0.0));
public double Rotation { get { return (double)GetValue(RotationProperty); } set { SetValue(RotationProperty, value); } }
}
这里XAML文件:
<l:Test xmlns:l="clr-namespace:XAMLAndXNA;assembly=XAMLAndXNA"
xmlns:a1="clr-namespace:System.Windows.Media.Animation;assembly=PresentationFramework"
xmlns:a2="clr-namespace:System.Windows.Media.Animation;assembly=PresentationCore"
Text="Testo" Position="55,60" Color="0,255,255,255">
<a1:Storyboard>
<a2:DoubleAnimation a1:Storyboard.TargetProperty="Rotation"
From="0"
To="360"
Duration="00:00:10.0"/>
</a1:Storyboard>
</l:Test>
这里是加载和启动动画(未遂):
Test test = XamlReader.Load(new XmlTextReader("SpriteBatchStuff.xaml")) as Test;
test.Animation.Begin(test);
我是临死好奇:)
真是个好主意!您是否尝试过在普通WPF应用程序中调试动画以查看哪些组件触发更新? – 2010-03-05 14:51:44
我知道这是一个老问题,但我很好奇你有多远?我一直在玩弄自己在XNA内部托管XAML的想法。即使这个问题显示如何添加基本的动画是一个很好的开始。 – 2012-05-05 05:48:28