/// <summary> /// Create a BitmapType object from a BitmapImage using the factory function, and add it to the collection /// </summary> /// <param name="item"></param> public BitmapType AddNewItem(BitmapImage bitmap) { BitmapType item = (BitmapType)FactoryFunc(bitmap); AddItem(item); return(item); }
/// <summary> /// Populate the palette from a list of filenames /// </summary> /// <param name="filenames"></param> public void Populate(string[] filenames) { foreach (string filename in filenames) { try { Uri uri = new Uri(filename); if (uri.IsFile) { FileInfo file = new FileInfo(filename); string name = System.IO.Path.GetFileNameWithoutExtension(file.Name); BitmapType item = CreateItemFromFile(name, uri); } else { string name = System.IO.Path.GetFileNameWithoutExtension(uri.LocalPath); BitmapType item = CreateItemFromFile(name, uri); } } catch (Exception) { Console.WriteLine("Failed to load {0}", filename); } } }
/// <summary> /// Add a BitmapType object to the collection /// </summary> /// <param name="item"></param> public void AddItem(BitmapType item, bool bCanRemove = true) { item.bCanRemove = bCanRemove; myItems.Add(item); if (null != OnItemAdded) { OnItemAdded(this, item); } }
/// <summary> /// Remove an item from the collection /// </summary> /// <param name="item"></param> public void RemoveItem(BitmapType item) { if (myItems.Remove(item)) { if (null != OnItemRemoved) { OnItemRemoved(this, item); } } }
public BitmapType CreateItemFromResource(string name, string path) { Uri uri = new Uri(new Uri(@"pack://application:,,,/MyAssembly;component"), path); BitmapImage image = new BitmapImage(uri); BitmapType x = AddNewItem(image); x.Name = name; x.filename = uri.AbsoluteUri; return(x); }
/// <summary> /// Create a BitmapType from a file. Must have set the factory function to use. /// </summary> /// <param name="name"></param> /// <param name="uri"></param> /// <returns></returns> public BitmapType CreateItemFromFile(string name, Uri uri) { BitmapImage image = new BitmapImage(uri); BitmapType x = AddNewItem(image); x.Name = name; if (uri.IsFile) { x.filename = Uri.UnescapeDataString(uri.AbsolutePath); } else { x.filename = uri.AbsoluteUri; } return(x); }