我想动态地向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;
但是这样,应用程序上的现有控件(形状)就会丢失。
现在,我的问题是如何将图像添加到内容中,而不会丢失应用程序中的现有控件。
答案 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);