【发布时间】:2012-04-26 00:30:10
【问题描述】:
在 XAML 中,我试图将窗口/应用程序图标绑定到文件系统上的图标。
在 Window.xaml 中
Icon="{Binding ApplicationIcon}"
在 AppViewModel.cs 中
public ImageSource ApplicationIcon
{
get
{
return new BitmapImage(new Uri(pathReadFromConfigFile));
}
}
当我这样做时,图标会显示,但它不是透明的。但是,如果我在项目中设置图标(不使用绑定),则图标将添加到项目中,并且在我启动应用程序时它是透明的。为什么它在这两种情况下表现不同?
【问题讨论】:
-
见谅,我并不是要转移原来的问题,但是这不是把MVVM推到了极致吗?除非您的图标会在运行时发生变化,否则决策需要在 VM 中完成并通过属性公开,以便 View 是被动的。否则,何必费心呢?
-
我理解您的意思,但我们正在尝试设计一个可配置的应用程序。我们有几个非常相似的应用程序,但它们的图标不同。我们的目标是让一个可执行文件使用不同的配置文件。
-
是的,有道理,我问的原因——我在做纯粹主义者和做完人之间有内在的斗争。所以我只是想知道其他人的动机是什么。感谢您的回复。
-
应该是图片加载方式和ImageSource创建方式有问题。如果您将 ApplicationIcon 绑定到具有奇怪背景颜色的 Image.Source,您会看到透明度吗?向我们展示您的其余代码。
-
@Brannon,我添加了更多代码。我猜这与返回 BitmapImage 有关。但是,我还能如何创建图像?
标签: c# wpf binding icons application-icon