2011-08-07 18 views
2

のパスを取得します。私はアニメーションという名前のクラスと同じディレクトリにanimationResources.xamlという名前のリソースディクショナリを持つクラスC#

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を構築するためには何とかする必要があると思いますクラスのパスを取得し、プロジェクトの名前も取得します。私はそれらの2つの文字列を取得する場合、私はおそらく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のパスを見つけることができれば、プロジェクトの名前などから辞書をマージするためにパスの文字列を作成できるようになります。

+0

なぜ、.xamlファイルをアセンブリリソースとして埋め込みませんか? – cdhowie

+0

どうすればいいですか?申し訳ありませんwpfの初心者です –

+0

あなたが正しいことをすれば、辞書をマージする必要はありません。 –

答えて

2

私もWPFには比較的新しいです。あなたはあなたの質問で「私がリソースを見つけることができる方法」と言った。あなたはXAMLだけを使ってリソースを見つけることもできることに気づいていますか?あなたには、以下のようにあなたがアプリケーションリソースを追加することができ、ファイルApp.xaml:

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

</Application.Resources> 

次に、あなただけの{StaticResource resourceNameは}でこれらのリソースを使用することができます。私はあなたの質問へのコメントとしてこれを追加したでしょうが、私はコメントの中でコードの書式を設定する方法を決して分かったことはありません。

+0

私は自分自身を正しく説明していないと思うので、私の質問を編集します。 –

+1

@Tod:コードにコメントを入れてください(例:\ 'あなたのコードはここに\ ')。しかし、複数行の書式設定はできませんが、コードのように見えるようにすることができます。 –

関連する問題