【发布时间】:2020-01-03 15:04:04
【问题描述】:
我想将文本块前景属性绑定到颜色对象(或画笔对象,我不知道哪个是正确的)。 我的颜色和画笔存储在一个名为 Colors 的类中(例如 Colours.MyColour),所以我像这样设置 DataContext:
DataContext="{Binding} Colours"
并像这样绑定前台属性:
<TextBlock Text="Text" Foreground="{Binding MyColour}"/>
它不起作用,所以我显然做错了。有人可以告诉我吗?
【问题讨论】:
-
它不起作用,因为您的 datacontext 本身是一个包含简单文本的字符串...您应该尝试将 datacontext 设置为您所说的类的 instance持有颜色属性....此外,该属性的类型也应该与 Foreground 属性相同。并且,不要忘记使用 INotifyPropertyChange 来通知您视图何时模型中的某些变化......我想这已经足够开始......照顾你的宠物。
-
为什么要设置DataContext?其次,您如何声明 Colors 类的实例并为正确拼写颜色 +1。
-
其实是一个静态类。前景需要颜色还是画笔?
-
您如何在 xaml 中引用该静态类?这里是 MSDN TextBlocks Foreground 属性的链接。
-
前景是笔刷,填充、描边和背景也是如此。也许您应该使用资源而不是类。将标准颜色和画笔放在资源字典中,并合并到 app.xaml 中的 application.current.resources 中。然后,您可以将 tyese 用作静态资源 - 如果您打算更改它们,则可以使用动态资源。
标签: wpf data-binding colors textblock