2010-02-11 60 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