2010-02-11 74 views
5

我正在用C#做WPF应用程序。 我在我的文件夹“数据”中有三种图像。 我有Iamge ABD文本块和一个按钮。 当我按下按钮时,它将显示textblock中的文本并取决于文本,图像可能会有所不同。我如何在运行时添加图像。在运行时添加图像

public void Adddata(string lData) 
     {   
      Text1.Text = lData; 
      Img1.Source = "data\vista_flag.png"; 
     } 

我知道我编码错了,但我不知道我能做什么。 Img1.Source = ????????

回答

2

XAML:

<Window x:Class="WpfApplication2.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
<Canvas Name="myCanvas"> 
    <StackPanel Name="stkPanel"> 
     <Button Name="btnLoadImage" Click="btnLoadImage_Click" >Load Image</Button> 
    </StackPanel> 
</Canvas> 

C#按钮单击代码:

private void btnLoadImage_Click(object sender, RoutedEventArgs e) 
    { 
     string src = @"C:\Documents and Settings\pdeoghare\My Documents\My Pictures\YourImage.jpg"; 

     Image img = new Image(); 

     img.Source = new ImageSourceConverter().ConvertFromString(src) as ImageSource; 

     stkPanel.Children.Add(img); 
    } 
+0

即时得到错误.. 的字符串src = @ “数据\ vista_flag.png” ; Img1.Source = new ImageSourceConverter()。ConvertFromString(src)as ImageSource; Stack1.Children.Add(Img1); 我得到错误img1.source = new ImageSource ......行 – Anu 2010-02-11 05:21:17

+0

对不起,当我把我的图像放在debug文件夹中,我没有得到那个错误。 但现在错误发生在最后一行。它告诉“指定的视觉已经是另一个视觉的孩子或CompositionTarget的根。” – Anu 2010-02-11 05:24:58

+0

在visual studio中,右键单击图像并选择“属性”。在“属性”中将“复制到输出目录”设置为“始终复制”。 – 2010-02-11 06:17:14