Wpf 在Xaml中定义类的正确方法是什么? 是新手,我在使用框架3.5玩Windows演示基金会,我刚开始讲故事板和动画。我尝试创建画布实例,并使用Story Board+动画实例为画布设置动画,这很有趣。现在我想想出一些有组织的方法,我可以轻松地定义许多动画并使用它们(在代码中定义对象实例太单调了)

Wpf 在Xaml中定义类的正确方法是什么? 是新手,我在使用框架3.5玩Windows演示基金会,我刚开始讲故事板和动画。我尝试创建画布实例,并使用Story Board+动画实例为画布设置动画,这很有趣。现在我想想出一些有组织的方法,我可以轻松地定义许多动画并使用它们(在代码中定义对象实例太单调了),wpf,wpf-controls,Wpf,Wpf Controls,我听说过使用XAML来实现这一点,我在CodeProject.com上也看到过一些例子,但它们似乎都是用故事板来定义用户控件。这对我来说太难了,我想做的就是定义故事板标签和故事板标签内的动画标签,作为一个类,有可能这样做吗?我的意思是,是否可以在XAML中定义一个类(而不是用户控件),然后在我想使用特定动画时调用它的变量,如“StoryBoard1”或“StoryBoard2”?我应该如何着手实施它 您可以在窗口中定义情节提要等。如果需要可重用的动画,请参阅参考资料 这些被称为资源而不是类 例如

我听说过使用XAML来实现这一点,我在CodeProject.com上也看到过一些例子,但它们似乎都是用故事板来定义用户控件。这对我来说太难了,我想做的就是定义故事板标签和故事板标签内的动画标签,作为一个类,有可能这样做吗?我的意思是,是否可以在XAML中定义一个类(而不是用户控件),然后在我想使用特定动画时调用它的变量,如“StoryBoard1”或“StoryBoard2”?我应该如何着手实施它

您可以在
窗口中定义
情节提要
等。如果需要可重用的动画,请参阅参考资料

这些被称为
资源
而不是

例如:

<Window x:Class="WpfApplication8.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="233" Width="405" Name="UI" >
    <Window.Resources>
        <Storyboard x:Key="MyAnimation" Storyboard.TargetProperty="Opacity">
            <DoubleAnimation From="0" To="1" Duration="0:0:5" />
        </Storyboard>
    </Window.Resources>

    <Grid>
        <Button Content="Animate" Name="button1" Opacity="0" >
            <Button.Style>
                <Style TargetType="{x:Type Button}" >
                    <Style.Triggers>
                        <Trigger Property="IsPressed" Value="True">
                            <Trigger.EnterActions>
                                <BeginStoryboard Storyboard="{StaticResource MyAnimation}" />
                            </Trigger.EnterActions>
                        </Trigger>
                    </Style.Triggers>
                </Style>
             </Button.Style>
        </Button>
    </Grid>
</Window>

如何访问资源?我在窗口中尝试了Resources[“MyAnimation”],但它返回了null更新的答案,例如:)我仍然得到null,如何从代码中访问资源?你能为WpfApplication8.MainWindow显示一个简单的代码示例吗?当我访问{System.Windows.ResourceDictionary}时,它总是空的。确保名称空间匹配
Xaml:x:Class=“WpfApplication8.MainWindow”
CS:namespace WpfApplication8
添加到答案中
namespace WpfApplication8
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            var storyboard = (Storyboard)FindResource("MyAnimation");
        }
    }
}