Image Source WPF - c#

I have a 2 Image Controls in my WPF Application,
I have a List of Image, I want to assign the images from the List to multiple controls.
imgBackground= t.BackgroundImage //Only shows in one component don't work
imgBackground.Source = t.BackgroundImage.Source ;//don't work
The Image is not showing in all the Image control i try to assign it to.
How can i fix this?
Note t.BackgroundImage and imgBackground is of type System.Windows.Controls.Image

Related

How can I convert an ascx usercontrol to an image to be saved on the server?

I have a shipping label ascx control and I need to convert the rendered control to an image and then save it on the server.
Is this possible?
Not exactly sure what you're looking for, but you could put an image in the user control and expose image or the path to the page.
//option 1: expose the image path
string imageUrl = MyUserControl.ImagePath;
//option 2: expose the image control
Image img = MyUserControl.SomeImage; //image
When you say that you want to save the image on the server, I'm a little confused - isn't the image already on the server, if you're displaying it in the user control? Are you looking to save the image somewhere else?
You can't really convert an Aspx control into an image; however you can convert a Windows Form's control into an image! You should recreate the control as a windows form (yes this works in web applications), populate the data by exposing the necessary properties "draw" the form to a bitmap. If you prefer Windows Presentation foundation, then you can do the same.
I've had to do the windows form draw to image to create dynamic charts for aspx applications before, and the result is fantastic.

How do I generate an Image through C# code?

I've got a button in my WinForms plugin. It's got an image on it. The thing is, when I click the button, I want the image to change from whatever image it is now, to whatever image I want it to be.
So basically how do i make button change its image? The image type is System.Drawing.Image.
In order to change a Button's image in WinForms you set it's Image property. You can either load a bitmap from a file with Bitmap.FromFile, or you can draw an image using the Graphic class by creating a new instance of Bitmap using the Width/Height constructor (i.e. new Bitmap(100, 100)) and then use the Graphic.FromImage method. Lookup the documentation on the Graphic class for more info.

How to create an Image object from an Icon for use with ToolStripStatusLabel items

I need to be able to set an icon on a ToolStripStatusLabel item in a C# Windows Forms application. The item will being displaying an image and text. I assumed that I could use an Icon with such an item but I am mistaken. What is the best way of creating an Image object from an existing Icon object?
the intended code will look something like:
Image image = new Image(); // Get this image somehow from a pre-existing Icon object
serverInfoToolStripStatusLabel.Text = "Connected to server X";
serverInfoToolStripStatusLabel.Image = image;
(NB: serverInfoToolStripStatusLabel is declared as System.Windows.Forms.ToolStripStatusLabel)
regards.
Icon has the ToBitmap method, which will give you a Bitmap, which is an Image
You can set the image directly in designer.
If you have to use code, why not add the image to your project Resources and then assign the image property to it?

How to get the bound

i have an image list, i am drawing it on form list-control.
i will get image bounds when the images gets added to list.
and it will come to draw-event there i get bounds.
instead how to get the bounds width and height at form-load.. i mean before drawing.
how to calculate it?.
i am using .net3.5 CF framework
Assuming you are using a list view control and the imagelist property then you can use
ListView.ImageList.ImageSize, although I don't think that this changes automatically depending on the images you add, docs suggest it defaults to 16x16, so you will have to set it I guess.
You don't say how you are loading the images, do you set the imagelist items at design time? Or do you load them from files at runtime? If you load them at runtime you can get the image size info from the file as you load it.

C# - same control on two forms?

I have extended a PictureBox and created a singleton.
Is it possible to display the same instance of a PictureBox control on two distinct form same time ?
Thanks in advance.
No - a control has a single parent control.
Of course not. Each Control has Parent property (and underlying window has parent window). Control has to communicate with its parent.
Having said that, if you need ImageControls on different forms to display the same image, here's what you can do.
Approach A
1) Create a (global) list of these picture boxes in your application.
class Globals //or whatever
{
public static List<PictureBox> allBoxes=new List<PictureBox> ();
2) On form creation add each PictureBox to this list.
foreach (Control c in Controls)
{
PictureBox pb = c as PictureBox;
if (pb != null) Globals.allBoxes.Add(pb);
}
3) when you need to change the image, iterate through this list:
foreach (PictureBox p in Globals.allBoxes)
{
p.Image=myImage;
}
I tested it a little, and it seems that you don't need to clone the image.
Approach B
1) Choose one 'master' PictureBox in your application.
2) Subclass PictureBox, so that it fires an event ImageChanged whenever Image property is set (some code samples in this thread)
3) On every other form having PictureBoxes, add an event handler to ImageChanged event of that 'master box' (masterBox.OnImageChanged+=new EventHandler(ImageChanged);
4) In the handler change all images
I prefer approach A.
I'm guessing you want to show the same picture in both pictureboxes? Take a look at the help file (take particular interest in the NOTE section).
PictureBox help
Remarks
Typically the PictureBox is used to
display graphics from a bitmap,
metafile, icon, JPEG, GIF, or PNG
file.
Set the Image property to the Image
you want to display, either at design
time or at run time. You can
alternatively specify the image by
setting the ImageLocation property and
load the image synchronously using the
Load method or asynchronously using
the LoadAsync method. NoteNote:
If you want to use the same image in
multiple PictureBox controls, create a
clone of the image for each
PictureBox. Accessing the same image
from multiple controls causes an
exception to occur.
If your are trying to display a Logo on each form then I would subclass the Picturebox and just load the image into it. No singleton, no magic.
But be carefull: You have to load the Image for each PictureBox. From MSDN:
http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.image.aspx
The Image property is set to the Image
to display. You can do this either at
design time or at run time.
Note: If you want to use the same
image in multiple PictureBox controls,
create a clone of the image for each
PictureBox. Accessing the same image
from multiple controls causes an
exception to occur.

Categories

Resources