- jamsoft_caldemo2.zip
- JamSoft.CALDemo2
- bin
- Debug
- Release
- External
- Internal
- Modules
- Skins
- Ext
- Microsoft.Practices.Composite.dll
- Microsoft.Practices.Composite.pdb
- Microsoft.Practices.Composite.UnityExtensions.dll
- Microsoft.Practices.Composite.UnityExtensions.pdb
- Microsoft.Practices.Composite.Wpf.dll
- Microsoft.Practices.Composite.Wpf.pdb
- Microsoft.Practices.ObjectBuilder2.dll
- Microsoft.Practices.ObjectBuilder2.xml
- Microsoft.Practices.Unity.dll
- Microsoft.Practices.Unity.xml
- MusicBrainz.dll
- Int
- JamSoft.CALDemo.Modules.ModuleA.Core.dll
- JamSoft.CALDemo.Modules.ModuleB.Core.dll
- JamSoft.CALDemo.Modules.MusicSearch.Core.dll
- JamSoft.CALDemo.Modules.PageManager.Core.dll
- JamSoft.CALDemo.Modules.SettingsManager.Core.dll
- JamSoft.CALDemo.Modules.SkinManager.Core.dll
- JamSoft.CALDemo.Modules.StatusBar.Core.dll
- JamSoft.CALDemo.Modules.ToolBar.Core.dll
- JamSoft.WpfThemes.Utils.dll
- JamSoft.CALDemo.Modules.MusicSearch.Core
- JamSoft.CALDemo.Modules.MusicSearch
- JamSoft.CALDemo.Modules.SettingsManager.Core
- JamSoft.CALDemo.Modules.SettingsManager
- JamSoft.CALDemo.Modules.SkinManager.Core
- JamSoft.CALDemo.Modules.SkinManager
- JamSoft.CALDemo.Modules.ToolBar.Core
- JamSoft.CALDemo.Modules.ToolBar
- JamSoft.CALDemo.UI.BlueTheme
- JamSoft.CALDemo.UI.DefaultTheme
- JamSoft.WpfThemes.Utils
- JamSoftDebuggerSolution.sln
- ModuleA
- ModuleB
- Navigator
- PageManager
- JamSoft.CALDemo.Modules.PageManager.Core
- JamSoft.CALDemo.Modules.PageManager
- PageManager.sln
- Shell
- Skins
- JamSoft.CALDemo.UI.BlueTheme.dll
- JamSoft.CALDemo.UI.DefaultTheme.dll
- StatusBar
- JamSoft.CALDemo.Modules.StatusBar.Core
- JamSoft.CALDemo.Modules.StatusBar
- StatusBar.sln
- JamSoft.CALDemo2.zip
|
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.IO;
using System.Windows;
using JamSoft.CALDemo.Modules.SkinManager.Core;
namespace JamSoft.CALDemo.Modules.SkinManager
{
/// <summary>
/// The class for use when loading skins from unreferenced dll libraries
/// </summary>
public class DirectAssemblySkin : Skin
{
/// <summary>
///
/// </summary>
/// <param name="name"></param>
/// <param name="assemblyPath"></param>
public DirectAssemblySkin(string name, string description, string assemblyPath) : base (name,description)
{
if (string.IsNullOrEmpty(assemblyPath))
{
throw new ArgumentException("Invalid assembly path", "assemblyPath");
}
this._fullName = AssemblyName.GetAssemblyName(assemblyPath);
}
/// <summary>
///
/// </summary>
/// <param name="name"></param>
/// <param name="fullName"></param>
public DirectAssemblySkin(string name, string description, AssemblyName fullName) : base (name, description)
{
if (fullName == null)
{
throw new ArgumentException("Invalid assembly name", "fullName");
}
this._fullName = fullName;
}
/// <summary>
///
/// </summary>
/// <param name="name"></param>
/// <param name="assemblyPath"></param>
/// <param name="resourceName"></param>
public DirectAssemblySkin(string name,string description, string assemblyPath, string resourceName) : base(name, description)
{
if (string.IsNullOrEmpty(resourceName))
{
throw new ArgumentException("Invalid resource name", "assemblyPath");
}
this._fullName = AssemblyName.GetAssemblyName(assemblyPath);
this._resourceName = resourceName;
FixResourceName();
}
/// <summary>
///
/// </summary>
/// <param name="name"></param>
/// <param name="fullName"></param>
/// <param name="resourceName"></param>
public DirectAssemblySkin(string name, string description, AssemblyName fullName, string resourceName) : base(name, description)
{
if (string.IsNullOrEmpty(resourceName))
{
throw new ArgumentException("Invalid resource name", "assemblyPath");
}
this._fullName = fullName;
this._resourceName = resourceName;
FixResourceName();
}
/// <summary>
///
/// </summary>
protected AssemblyName FullName
{
get { return _fullName; }
}
/// <summary>
///
/// </summary>
protected sealed override void LoadResources()
{
ISkinBamlResolver skinResolver = PreLoadResources();
try
{
List<Stream> skinBamlStreams = skinResolver.GetSkinBamlStreams(_fullName, _resourceName);
foreach (Stream resourceStream in skinBamlStreams)
{
ResourceDictionary skinResource = BamlHelper.LoadBaml<ResourceDictionary>(resourceStream);
if (skinResource != null)
{
Resources.Add(skinResource);
}
}
}
finally
{
PostLoadResources();
}
}
/// <summary>
///
/// </summary>
/// <returns></returns>
protected virtual ISkinBamlResolver PreLoadResources() { return new SkinBamlResolver(); }
/// <summary>
///
/// </summary>
protected virtual void PostLoadResources() { }
private void FixResourceName()
{
_resourceName = _resourceName.ToLower().Replace(".xaml", ".baml");
}
private readonly AssemblyName _fullName;
private string _resourceName;
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.