2012-06-14 51 views
1

我不能用圖像填充矩形對象。WPF Rectangle ImageSource

ImageBrush ib = new ImageBrush(); 
BitmapImage bmi = new BitmapImage(new Uri(@"/WpfImageApp;component/Images/Penguins.jpg", UriKind.Relative)); 
ib.ImageSource = bmi; 
body.Fill = ib; 

body是矩形對象,當我運行這段代碼時,窗口上只有黑屏。我也無法看到我的其他控制器(如按鈕)。任何解決方案

+0

你確定你的URI是找到源之後? – benjer3

+0

當然是。事情是當我將Uri源碼設置爲「penguinnn.jpg」時,我可以看到我所有的控件。 – hellzone

+0

我不知道這是否會做任何事情,但嘗試使'ImageBrush.Stretch = Stretch.Uniform'。 – benjer3

回答

1

複製完成後,我可以確認如果BitmapImage無法在構造函數中加載,您將看到一個黑色窗口,其中沒有控件可見。

將您的代碼移動到一個按鈕,您可以單擊窗口已加載後,您將看到正確的錯誤消息。

Could not find a part of the path 'C:\WpfImageApp;component\Images\Penguins.jpg'. 

改變你的URI來pack://application:,,,/Images/Penguins.jpg圖像加載正確

+0

var uriSourcee = new Uri(@「/ WpfImageApp; component/Images/Penguins.jpg」,UriKind.Relative); image.Source = new BitmapImage(uriSourcee);但我可以用這個URL填充我的Image對象。 – hellzone

+0

試試我已經放在上面的pack uri,應該可以正常工作。有趣的是,如果它沒有在構造中加載位圖,沒有錯誤,整個窗口都是黑色的,我不知道爲什麼會發生這種情況。 – Andy

+0

事情是,當我設置隨機的Uri源如「C:\ penguinnn.jpg」或「E:\ penguinn.jpg」,那麼我可以看到我所有的控件。這意味着我的URI是真實的。 – hellzone