将窗口图标绑定到图像

时间:2012-09-09 17:29:07

标签: wpf image window

好吧我所拥有的是自定义Window控件。我要做的是设置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")) };

1 个答案:

答案 0 :(得分:0)

我可以看到三个问题。

  1. 该属性实际上并不依赖于依赖属性(它使用自己的getter / setter)。
  2. 未对该属性进行命名以匹配您设置的绑定+ DP注册,即应将其命名为Icon而不是IconImage
  3. 该属性的类型与您绑定的属性类型不同(Image vs ImageSource)。
  4. 我建议改为实现IconImage这样的属性:

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