0

好吧,我所拥有的是一个自定义窗口控件。我想要做的是设置一个Image控件,我试图将其设置.SourceWindow.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")) };
4

1 回答 1

0

我可以看到三个问题。

  1. 该属性实际上并不绑定到依赖属性(它使用自己的 getter/setter)。
  2. 该属性未命名为与您设置的绑定+DP 注册匹配,即,它应该命名IconIconImage.
  3. 属性的类型与您绑定的(Imagevs ImageSource)不同。

我建议IconImage改为这样实现该属性:

public ImageSource Icon 
{ 
    get { return this.GetValue(IconProperty) as ImageSource; }
    set { this.SetValue(IconProperty, value); }
}
于 2012-09-09T18:42:42.183 回答