1

这是对在 Xaml 中定义类的正确方法是什么?

我已经设法让资源运行起来,现在玩得很开心。但我意识到我必须以这种方式将资源定义为 Window 类的一部分,我看过一些示例,它们似乎使用 UserControl、Applicaion 或 Window 来封装资源。这很有意义,因为资源将在 UI 中使用,但我想问,是否可以将资源定义为自定义类的一部分?如果我有一个 Person 类,我可以使用 XAML 为它定义资源吗?使用 Person.Xaml 和 Person.Xaml.cs?

4

2 回答 2

1

您可以添加资源字典(添加资源字典类型的新项目),并且可以在此 XAML 文件中包含所有资源。在资源字典中定义可重用资源并在需要的地方使用它是一种很好的做法

于 2013-01-31T05:16:45.910 回答
0

这有点棘手,如果 Person 只是一个类,它不会有任何对应的 Xaml 文件。

一种方法是将您的资源存储在您的资源中,App.Xaml然后您可以从应用程序中的任何位置访问这些资源。

例子:

应用程序.xaml

<Application x:Class="WpfApplication13.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <Storyboard x:Key="MyAnimation" Storyboard.TargetProperty="Opacity">
            <DoubleAnimation From="0" To="1" Duration="0:0:5" />
        </Storyboard>
    </Application.Resources>
</Application>

人物类

public class Person
{
    public Person()
    {
        var storyboard = (Storyboard)Application.Current.Resources["MyAnimation"];
    }
}

另一种方法是创建自己的Resource.Dictionaries并加载它们。

于 2013-01-31T05:21:29.093 回答