Tanuj Wadhwa
Tanuj Wadhwa

Reputation: 2045

Adding Image to wpf

I want to add an Image dynamically to the wpf application.

What I have tried :

            Image img = new Image();
            img.Height = 100;
            img.Width = 100;
            img.Visibility = Visibility.Visible;

            Thickness th = new Thickness(100, 100, 0, 0);
            img.Margin = th;

            string strUri2 = String.Format(@"pack://application:,,,/MyFirstWPF;component/Images/tt.jpg");
            img.Source = new BitmapImage(new Uri(strUri2));

I know, the image won't display unless I add it to the Content.

this.Content=img;

but with this the existing controls(shapes) on the app are lost.

Now, my question is how to add the image to the content without losing existing controls from the app.

Upvotes: 2

Views: 24153

Answers (2)

Clemens
Clemens

Reputation: 128136

When you are going to load and show an image dynamically, you still need to think about the layout of your application. I would suggest to add an (initially empty) Image control in XAML (for example in a Grid), and later set the Source property of this control in code.

<Grid>
    ... other controls ...
    <Image Name="img" Grid.Row="..." Grid.Column="..."
           Width="100" Height="100" Margin="100,100,0,0"/>
</Grid>

Set Source in code:

var uri = new Uri("pack://application:,,,/MyFirstWPF;component/Images/tt.jpg");     
img.Source = new BitmapImage(uri);

Upvotes: 7

S3ddi9
S3ddi9

Reputation: 2151

by default the window content is a grid so try

(this.Content as Grid).Children.Add(img);

Upvotes: 1

Related Questions