Получить путь класса c # - PullRequest
       1

Получить путь класса c #

2 голосов
/ 07 августа 2011

У меня есть класс с именем 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);

Я планирую экспортировать этот проект, поэтому фактическое имя проекта будет другим, и путь к словарю ресурсов также изменится. Единственное, что я знаю, это то, что класс и словарь ресурсов будут расположены в одном и том же каталоге, в данном случае это каталог раскадровок (посмотрите на первое изображение). Поэтому для построения Uri, я думаю, мне нужно как-то получить путь к классу, а также получить название проекта. Если я получу эти две строки, я, вероятно, смогу построить URI. Как я могу получить название проекта программно (FilesPro2.1) и путь Animations.cs ("C: \ Users ........ \ FilesPro2.1 \ classes \ storyboards \ animations.cs") также имена классов будут одинаковыми, а имя словаря ресурсов будет одинаковым.


EDIT

Я попытаюсь объяснить себя немного лучше, извините. Хорошо, возможно, не обращайте внимания на заглавный вопрос. Я строю несколько проектов, и все они имеют похожую анимацию. В результате я хочу создать раскадровки с кодом. когда я делаю это, трудно установить функции замедления с помощью c #, поэтому я сделал, чтобы создать функции замедления с помощью xaml, где это проще, и создать базовую анимацию с помощью c #, что также является эссе. при создании этой анимации в отдельном классе я могу найти ресурс из словаря ресурсов, если объединю словари. Но для того, чтобы слить словари, мне нужно знать путь. так как я планирую экспортировать этот словарь классов и ресурсов в несколько проектов, было бы хорошо, если бы мне не нужно было знать путь или мне не нужно объединять словарь в файле app.xaml для каждого проекта. Моя цель состояла в том, чтобы импортировать animationResources.xaml и Animation.cs в каждый проект, а затем ожидать, что класс в (Antimation.cs) найдет ресурс из animationResources.xaml. Я не знаю, возможно ли это, единственное, что я знаю, это то, что при экспорте animationResources.xaml и Antimation.cs они будут иметь одинаковые имена и будут находиться в одном каталоге. вот почему я подумал, что если бы можно было найти путь к Antimation.cs, я собирался создать строку пути для объединения словаря, исходя из имени проекта и т. д.

1 Ответ

2 голосов
/ 07 августа 2011

Я тоже относительно новичок в WPF.Вы сказали в своем вопросе «как я могу найти ресурс ...». Вы также знаете, что вы можете найти ресурс, просто используя XAML?В вашем файле App.xaml вы можете добавить Ресурсы приложений, как показано ниже:

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

</Application.Resources>

Затем вы можете просто использовать эти ресурсы с {StaticResource resourceName}.Я бы добавил это в качестве комментария к вашему вопросу, но я так и не понял, как отформатировать код в комментарии, и в противном случае его очень сложно прочитать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...