将图像添加到wpf

时间:2012-08-19 10:12:42

标签: c# wpf

我想动态地向wpf应用程序添加Image

我尝试过:

            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));

我知道,除非我将图片添加到内容中,否则图片不会显示。

this.Content=img;

但是这样,应用程序上的现有控件(形状)就会丢失。

现在,我的问题是如何将图像添加到内容中,而不会丢失应用程序中的现有控件。

2 个答案:

答案 0 :(得分:5)

当您要动态加载和显示图像时,仍需要考虑应用程序的布局。我建议在XAML中添加一个(最初为空的)Image控件(例如在Grid中),然后在代码中设置该控件的Source属性。

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

在代码中设置Source

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

答案 1 :(得分:1)

默认情况下,窗口内容是网格,请尝试

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