www org mapwingis mapwindows mapwindow espaƱol c# image resources picturebox

c# - org - mapwindows 5



Cargar imagen de recursos (6)

Quiero cargar la imagen así:

void info(string channel) { //Something like that channelPic.Image = Properties.Resources.+channel }

Porque no quiero hacer

void info(string channel) { switch(channel) { case "chan1": channelPic.Image = Properties.Resources.chan1; break; case "chan2": channelPic.Image = Properties.Resources.chan2; break; } }

Es algo como esto posible?


Prueba esto para WPF

StreamResourceInfo sri = Application.GetResourceStream(new Uri("pack://application:,,,/WpfGifImage001;Component/Images/Progess_Green.gif")); picBox1.Image = System.Drawing.Image.FromStream(sri.Stream);


Puede agregar un recurso de imagen en el proyecto y luego (haga clic con el botón derecho en el proyecto y elija el elemento Propiedades ) acceda a eso de esta manera:

this.picturebox.image = projectname.properties.resources.imagename;


Puede hacer esto usando ResourceManager :

public bool info(string channel) { object o = Properties.Resources.ResourceManager.GetObject(channel); if (o is Image) { channelPic.Image = o as Image; return true; } return false; }


ResourceManager funcionará si su imagen está en un archivo de recursos. Si solo se trata de un archivo en su proyecto (digamos la raíz) puede obtenerlo usando algo como esto:

System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly(); System.IO.Stream file = assembly .GetManifestResourceStream("AssemblyName." + channel); this.pictureBox1.Image = Image.FromStream(file);

O si estás en WPF:

private ImageSource GetImage(string channel) { StreamResourceInfo sri = Application.GetResourceStream(new Uri("/TestApp;component/" + channel, UriKind.Relative)); BitmapImage bmp = new BitmapImage(); bmp.BeginInit(); bmp.StreamSource = sri.Stream; bmp.EndInit(); return bmp; }


Siempre puede usar System.Resources.ResourceManager que devuelve el ResourceManager almacenado en caché utilizado por esta clase. Dado que chan1 y chan2 representan dos imágenes diferentes, puede usar System.Resources.ResourceManager.GetObject(string name) que devuelve un objeto que coincide con su entrada con los recursos del proyecto.

Ejemplo

object O = Resources.ResourceManager.GetObject("chan1"); //Return an object from the image chan1.png in the project channelPic.Image = (Image)O; //Set the Image property of channelPic to the returned object as Image

Aviso : Resources.ResourceManager.GetObject(string name) puede devolver null si la cadena especificada no se encontró en los recursos del proyecto.

Gracias,
Espero que encuentres esto útil :)


this.toolStrip1 = new System.Windows.Forms.ToolStrip(); this.toolStrip1.Location = new System.Drawing.Point(0, 0); this.toolStrip1.Name = "toolStrip1"; this.toolStrip1.Size = new System.Drawing.Size(444, 25); this.toolStrip1.TabIndex = 0; this.toolStrip1.Text = "toolStrip1"; object O = global::WindowsFormsApplication1.Properties.Resources.ResourceManager.GetObject("best_robust_ghost"); ToolStripButton btn = new ToolStripButton("m1"); btn.DisplayStyle = ToolStripItemDisplayStyle.Image; btn.Image = (Image)O; this.toolStrip1.Items.Add(btn); this.Controls.Add(this.toolStrip1);