我在WPF控件中使用的示例图像用于测试目的。
图片路径为<project_dir>/Assets/Samples/dog.jpg
当我在source属性中输入图像路径时,它的工作没有任何问题(在设计和运行时):
<Image Source="/Assets/Samples/dog.jpg" Stretch="UniformToFill" />
但是,当我将图像路径移动到我的ViewModel中时,它仅在运行时出于某种原因才有效。
public string Image { get; set; }
public MyControlViewModel() {
Image = "/Assets/Samples/dog.jpg";
}
<Image Source="{Binding Image}" Stretch="UniformToFill" />
我确实将图片构建操作更改为Resource
,但没有任何结果。
还尝试使用资源URI路径(pack://application:,,,/Assets/Samples/dog.jpg
) - 没有任何结果。
答案 0 :(得分:0)
在设计时,您是否将ViewModel(显式)绑定到View的DataContext?
如果是,那么Designer应该显示它。如果不是,请重建整个项目/解决方案。
如果没有,那么很有可能它在设计时不会出现,因为DataContext是未知的。其中一个解决方案是为了设计而绑定它:
例如:
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="clr-namespace:MyApp.ViewModels"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance {x:Type vm:MyControlViewModel},IsDesignTimeCreatable=True}"