2012-09-09 93 views
0

好吧,我擁有的是一個自定義窗口控件。我想要做的是設置一個Image控件,我試圖將.Source設置爲Window.Icon屬性。將窗口圖標綁定到圖像

我有什麼是

public static readonly DependencyProperty IconProperty = DependencyProperty.Register("Icon", typeof (ImageSource), typeof (OctgnChrome)); 
private Image IconImage { get; set; } 

,並在構造函數中

IconImage.SetBinding(IconProperty, new Binding("Icon") {UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged}); 

OctgnChrome是自定義窗口的名稱。

問題是窗口有一個圖標,當我運行時它顯示在任務欄上,但Image沒有顯示任何內容,只是空白。

關於如何解決這個問題,或者我可能會做錯什麼想法?

此外

如果我將它設置在一個專門的圖標直接點,它的工作原理,這樣

IconImage = new Image{Source = new BitmapImage(new Uri("pack://application:,,,/Octgn;component/Resources/Icon.ico")) }; 
+0

請從把不必要的混亂的稱號避免。平臺/技術信息已經通過標籤傳達出來了,我會冒險猜測大多數想回答問題的人都會依照標籤瀏覽,所以他們確切知道他們目前看到的問題是什麼。 –

回答

0

三個問題,我可以看到。

  1. 該屬性實際上並不依賴於依賴屬性(它使用自己的getter/setter)。
  2. 該屬性未命名爲與您設置的綁定+ DP註冊相匹配,即它應該被命名爲Icon而不是IconImage
  3. 屬性的類型與您綁定的屬性不同(Image vs ImageSource)。

我建議實施IconImage屬性像這個:

public ImageSource Icon 
{ 
    get { return this.GetValue(IconProperty) as ImageSource; } 
    set { this.SetValue(IconProperty, value); } 
}