2012-08-10 74 views
3

我動態創建的GridView細胞內的StackPanel和放置圖像控件中的StackPanel但窗口上只有空白的到來,而不是圖像
這裏是我在做什麼內的StackPanel圖像中,無法顯示

StackPanel Stkpnl = new StackPanel(); 

Image BgImg = new Image(); 
BitmapImage Img = new BitmapImage(new Uri(
    "Images/cellbg.png", UriKind.Relative)); 
BgImg.Source = Img ; 

Stkpnl.Children.Add(BgImg); 
+1

您是否嘗試過調試以查看Img是否已加載 - 您是否已將堆​​棧面板添加到可視樹中? – Charleh 2012-08-10 17:09:44

+1

[在代碼中設置WPF圖像源]可能的重複(http://stackoverflow.com/questions/350027/setting-wpf-image-source-in-code) – secretgenes 2016-02-18 05:58:18

回答

0

你的代碼似乎是正確的,你檢查該文件夾上存在的圖像還是相對路徑是正確的,如果你以後將這個圖像添加到圖像文件夾中,那麼你必須設置「Build Action」一個圖像爲「資源」。右鍵單擊解決方案資源管理器中的圖像,可以設置此屬性。

您也應該檢查這個問題

Setting WPF image source in code

1

您需要使用Pack URI。見https://stackoverflow.com/a/1651397/486660

如果你有一個問題,什麼包URI應該是什麼樣子,那麼Image控制臨時添加到您的WPF頁面,則跳轉的Source屬性,然後單擊「...」按鈕並導航到你的形象。該屬性的文本框中將包含Pack URI。

0
StackPanel Stkpnl = new StackPanel(); 
Image BgImg = new Image();  
String packuri = "pack://application:,,,/yourassemblyname;component/cellbg.png"; 
BgImg.Source = new ImageSourceConverter().ConvertFromString(packuri) as ImageSource; 

Stkpnl.Children.Add(BgImg); 

PS:在Visual Studio 2012查找程序集的名字去 「項目」 菜單欄 - > 「設置屬性」 - >應用程序。