2011-08-15 11 views
1

XAMLファイルで定義されているスタイルがあるとします。
そのXAMLファイルをリソースとしてクラスライブラリにコンパイルしたいとします。コード内のリソースからスタイルを設定する

次に、私はそのスタイルを必要とするコントロール(カスタムtelerikグリッドビューの列)を持っています。 コードでは、そのXAMLリソースを読み込み、そのインスタンスからStyleオブジェクトをロードします。どうすればいい?

答えて

2

私はこのような何かがいる限り、あなたが必要とするスタイルは、XAMLファイルであるとして動作するはずです、マージされた辞書を使用します。

using (StreamReader sr = new StreamReader(
    Application.GetResourceStream(new Uri("Themes/Theming.Blue.xaml", UriKind.Relative)).Stream)) 
{ 
    xaml = sr.ReadToEnd(); 
    sr.Close(); 
} 
ResourceDictionary rd = (ResourceDictionary)XamlReader.Load(xaml); 

App.Current.Resources.MergedDictionaries.Clear(); 
App.Current.Resources.MergedDictionaries.Add(rd); 
+0

はあなたの助けをありがとう - 私はほとんどそこだけど、私は」リソースがどのように識別されているかを理解することができません。私のクラスライブラリでは、埋め込みリソースとしてxamlファイルを設定しています。私が持っている問題は、Application.GetResourceStreamは常にnullを返すということです。私はおそらく正しい識別子を使用していないだろうが、私は魔法の文字列が何であるか把握することはできません。 (リフレクターに表示されているリソース名とそれに似たバリエーションはありますが、喜びはありません) – JMarsch

+0

問題は「組み込みリソース」ではなく「リソース」を使用する必要があるということでした。 theAssembly; component/Thenamespace/TheXamlfile.xaml " – JMarsch