获取class c的路径#

时间:2011-08-07 03:36:06

标签: c# wpf

我在同一目录中有一个名为Animations的类和一个名为animationResources.xaml的资源字典:

enter image description here

我能够在该字典中找到资源的方法是创建一个资源字典,其中包含提供animationResources.xaml路径的代码:

 ResourceDictionary dict = new ResourceDictionary();
 Uri uri = new Uri("/FilesPro2.1;component/Classes/Storyboards/animationResources.xaml", UriKind.Relative);
 dict.Source = uri;
 Application.Current.Resources.MergedDictionaries.Add(dict);

我计划导出这个项目,所以实际的项目名称会有所不同,资源字典的路径也会改变。我唯一知道的是,类和资源字典将位于同一目录中,在这种情况下它是目录Storyboards(看第一个图像)所以为了构建Uri我想我需要以某种方式得到类的路径,也获得项目的名称。如果我得到这两个字符串,我可能会建立uri。如何获取项目名称programaticaly(FilesPro2.1)和Animations.cs的路径(“C:\ Users ........ \ FilesPro2.1 \ classes \ storyboards \ animations.cs”)类的名称也是相同的,资源字典的名称也是相同的。


修改

我会尽力解释一下我的自我。好的,也许无视标题问题。我正在构建几个项目,所有项目都有类似的动画。因此,我想用代码创建故事板。当我这样做时很难用c#设置缓动函数,因此我所做的就是用xaml创建缓动函数,这样就更容易了,用c#创建一个基本的动画,这也是一篇论文。当在一个单独的类上创建这个动画时,如果合并字典,我可以从资源字典中找到资源。但为了让我合并字典,我需要知道路径。因为我计划将这个类和资源字典导出到几个项目,如果我不必知道路径或者我不必在app.xaml文件中为每个项目合并字典,那将是很好的。我的目标是将animationResources.xaml和Animation.cs导入到每个项目中,然后期望(Antimation.cs)中的类从animationResources.xaml中查找资源。我不知道这是否可能我知道的唯一事情是,当导出animationResources.xaml和Antimation.cs时,它们将具有相同的名称,并且它们将位于同一目录中。这就是为什么我认为如果有可能找到Antimation.cs的路径,那么我将能够构建路径的字符串,以便合并从项目名称中等待的字典等。

1 个答案:

答案 0 :(得分:2)

我也是WPF的新手。您在问题中说“我能够找到资源的方式......”您是否也知道只需使用XAML即可找到资源?在App.xaml文件中,您可以添加应用程序资源,如下所示:

 <Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="StoryBoards\anmationResources.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>

</Application.Resources>

然后您可以将这些资源与{StaticResource resourceName}一起使用。我会将此作为对您问题的评论添加,但我从未想过如何在评论中格式化代码,否则很难阅读。