StrataFrame Forum
Back
Login
Login
Home
»
Updates and Information
»
StrataFrame Users Contributed Samples
»
Using Icons at runtime from resource library!
Using Icons at runtime from resource library!
Post Reply
Like
1
Using Icons at runtime from resource library!
View
Flat Ascending
Flat Descending
Threaded
Options
Subscribe to topic
Print This Topic
RSS Feed
Goto Topics Forum
Author
Message
Ben Hayat
Ben Hayat
posted 17 Years Ago
ANSWER
Topic Details
Share Topic
Group: Forum Members
Posts: 374,
Visits: 1.2K
The following is a solution offered by Ben Chase (SF team) that allows you to use icons at runtime from a resource library rather than loading from disk:
the Image and Icon are completely different... mainly because Icon does not inherit from Image (the file formats are completely different since an Icon can have several different sizes within the file). So, I would recommend that you add the icons to your project (not as resources, just add them to the project with the "Add Exisiting Item" option) and change their compile option to Embedded Resource (in the properties for the file). Then, you can use the Icon constructor that accepts a stream to retrieve the embedded resources. Kinda like this:
notifyIcon1.Icon = new Icon(Assembly.GetExecutingAssembly().GetManifestResourceStream("RootNamespace.Folders.FileName"));
C# and VB do some different stuff for the name of the resource when it's compiled. C# uses the root namespace + the folder names separated by "." followed by the filename. Whereas VB just the root namespace + the filename. If you ever want to see what resources are available, you can use the Assembly.GetExecutingAssembly().GetManifestResourceNames(); method which will return the names of all of the resources. Oh, and the names are case-sensitive.
But that's probably your best be for retrieving icons from the assembly at runtime.
..ßen
Reply
Like
1
Ben Hayat
Ben Hayat
posted 17 Years Ago
ANSWER
Post Details
Share Post
Group: Forum Members
Posts: 374,
Visits: 1.2K
Paul Chase also offered another variation to this solution:
Here is how to accomplish what you originally asked in VB, For C# you would probably just have to change the casting.
NotifyIcon1.Icon = System.Drawing.Icon.FromHandle(CType(Me.ImageList1.Images(0), Drawing.Bitmap).GetHicon)
The following is my own done in C#. Broke it down for clarifications:
Bitmap myBitmap;
IntPtr Hicon;
myBitmap = imageList1.Images["Camera Check.Ico"] as Bitmap;
Hicon = myBitmap.GetHicon();
notifyIcon1.Icon= Icon.FromHandle(Hicon);
..ßen
Reply
Like
2
GO
Merge Selected
Merge into selected topic...
Merge into merge target...
Merge into a specific topic ID...
Open Merge
Post Reply
Like
1
Similar Topics
Post Quoted Reply
Reading This Topic
Login
Login
Remember Me
Reset Password
Resend Validation Email
Login
Explore
Messages
Mentions
Search