当前位置: 首页 > 编程语言 > C#

WPF绑定图片源分享

时间:2023-04-10 21:28:49 C#

WPF绑定图片源也许是个愚蠢的问题,但我不知道...publicImageSourceStatusImage{get{return_img;}设置{_img=值;NotifyPropertyChanged();}}公共事件PropertyChangedEventHandlerPropertyChanged;privatevoidNotifyPropertyChanged([CallerMemberName]StringpropertyName=""){if(PropertyChanged!=null)PropertyChanged(this,PropertyChangedEventArgs(propertyName));XAML中的绑定如下所示:我将ImageSource的内容设置为:MainWindowsViewModel_view=newMainWindowsViewModel();varyourImage=newBitmapImage(newUri(String.Format("Sources/{0}.png","red"),UriKind.Relative));_view.StatusImage=你的图片;但它不起作用。我认为问题出在NotifyPropertyChanged上,因为我尝试在set和get中设置断点。它在开始时触发几次,然后使用正确的ImageSource设置,但之后get不再触发。就好像什么情况都没有发生过一样。真的很简单,我做过很多次类似的绑定……不知道为什么这次不行。您正在创建MainWindowsViewModel类的两个实例,一个在XAML中,一个在MainWindowsViewModel_view=newMainWindowsViewModel()后面的代码中;因此,您的代码将属性设置在与视图绑定到的视图模型实例不同的视图模型实例上。将您的代码更改为:varviewModel=(MainWindowsViewModel)DataContext;viewModel.StatusImage=newBitmapImage(...);我没有在你的代码中发现任何问题,但你可以尝试检查一些东西。检查您的图像是否已添加到项目并将图像的构建操作设置为内容(如果更新则复制)。在更新ImageSource之前调用Freeze方法以防止错误:“DependencySource必须在与DependencyObject相同的线程上创建”varyourImage=newBitmapImage(newUri(String.Format("Sources/{0}.png","red"),UriKind.Relative));你的图像。冻结();_view.StatusImage=你的图片;此外,还有一种更简单的方法可以在WPF中绑定图像。可以使用字符串作为来源,设置绑定属性的资源路径:以上就是C#学习教程:WPF绑定图片源分享的全部内容。关注—publicstringStatusImage{get{return"/AssemblyName;component/Sources/red.png";}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: