2

我想向Imagewpf 应用程序动态添加一个。

我尝试过的:

            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;

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

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

4

2 回答 2

7

当您要动态加载和显示图像时,您仍然需要考虑应用程序的布局。我建议在 XAML 中(例如在网格中)添加一个(最初为空的)图像控件,然后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);
于 2012-08-19T10:48:23.577 回答
1

默认情况下,窗口内容是一个网格,所以试试

(this.Content as Grid).Children.Add(img);
于 2012-08-19T10:26:48.787 回答