Click here to Skip to main content
16,004,833 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I am working on a project that based on Silverlight 5.
I want to load a resourcceDictionary by c# code.
For this work, I am using this code.

C#
var url = new Uri(@"pack://application/PIPM2.MainVisual;component/"
                               + "Theme/Red.xaml", UriKind.Absolute);
            Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = url });

But I got this error =>
Error HRESULT E_FAIL has been returned from a call to a COM component.

Stack Trace =>
at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
at MS.Internal.XcpImports.SetValue(IManagedPeerBase obj, DependencyProperty property, String s)
at MS.Internal.XcpImports.SetValue(IManagedPeerBase doh, DependencyProperty property, Object obj)
at System.Windows.DependencyObject.SetObjectValueToCore(DependencyProperty dp, Object value)
at System.Windows.DependencyObject.SetEffectiveValue(DependencyProperty property, EffectiveValueEntry& newEntry, Object newValue)
at System.Windows.DependencyObject.UpdateEffectiveValue(DependencyProperty property, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, ValueOperation operation)
at System.Windows.DependencyObject.SetValueInternal(DependencyProperty dp, Object value, Boolean allowReadOnlySet, Boolean isBindingInStyleSetter)

How can I solve this problem ?
If you have better way to load resourceDictionary, please give me it.
Posted
Updated 30-Nov-12 21:26pm
v2

1 solution

Please try below code and Set your file's property (Right click on that file)
1) Build Action : Content
2) Copy to Output directory: Copy if newer

C#
ResourceDictionary rd = new ResourceDictionary();
rd.Source = new Uri("/Theme/Red.xaml", UriKind.RelativeOrAbsolute);
App.Current.Resources.MergedDictionaries.Clear();
App.Current.Resources.MergedDictionaries.Add(rd);


Thanks

Akash
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900