WPF里ImageBrush 的ImageSource属性怎么进行数据绑定?属性里好象没有context属性指定C#的对象啊

sinat_34072242 2016-12-18 09:15:11

RT,不知道该怎么绑定到C#代码中的pic1对象
Xaml源码:
<Grid.Background>
<ImageBrush Context="pic1" ImageSource="{Binding Value,Mode=TwoWay}"/>
</Grid.Background>
C#相关源码

picResouce pic1 = new picResouce();
private void Window_Loaded(object sender, RoutedEventArgs e)
{
pic1.Number = 1;
pic1.Value = new BitmapImage(new Uri("/Resources/BackgroundPicture/北欧.jpg", UriKind.Relative));
}
...全文
2760 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdb365 2017-02-15
  • 打赏
  • 举报
回复
在ViewModel里面设置一个图片路径的属性比如ImagePath, 在View中进行binding,需要一个Converter,把这个字符串转换成一个ImageBursh就可以了. public class TestViewModel { public string ImagePath{get;set;} } View: <Grid background={binding ImagePath, covnerter={staticresource pathToImageConverter}}/> converter: public class PathToImageConverter : IValueConveter { public object Converter(...) { return new ImageBrush(ImagePath); } }
exception92 2016-12-19
  • 打赏
  • 举报
回复
ImageBrush 不是内容控件,当然没有Context属性。使用 binding模式要设置对象的DataContext对象,不清楚的话先去网上搜它的用法,很好用。
  • 打赏
  • 举报
回复
this.DataContext = pic1;
  • 打赏
  • 举报
回复
在你给的函数后写this.ContextData = pic1;
sinat_34072242 2016-12-19
  • 打赏
  • 举报
回复
求助各位老司机们;-)
  • 打赏
  • 举报
回复
你参考下下面的例子吧,除了不用itemsresouce,其他的几乎都一样 http://blog.csdn.net/libby1984/article/details/53099395
  • 打赏
  • 举报
回复
在你给的函数后写this.ContextData = pic1; 然后XAML里面<ImageBrush Context="pic1" ImageSource="{Binding Value}"/>
exception92 2016-12-19
  • 打赏
  • 举报
回复
引用 7 楼 duanzi_peng 的回复:
连binding 之后跟的属性路径 都没有写。
建议还是先去了解WPF的MVVM模式
sinat_34072242 2016-12-19
  • 打赏
  • 举报
回复
我之前没截图,我当时是这样写属性路径的,不知道对不对@duanzi_peng
exception92 2016-12-19
  • 打赏
  • 举报
回复
连binding 之后跟的属性路径 都没有写。
sinat_34072242 2016-12-19
  • 打赏
  • 举报
回复
@Libby1984 @duanzi_peng
sinat_34072242 2016-12-19
  • 打赏
  • 举报
回复
不管用啊,正常情况,原图 改完代码后 xaml代码 改完代码后 C#代码

8,736

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧