我正在学习WPF的概念,例如数据绑定,命令,资源,元素绑定,样式等,它们广泛地使用标记扩展,并且我有问题了解背后的含义标记类,因为它们的使用超出了我理解它们应该使用的范围。因此,这里有几点我需要明确: (所有的代码片段都来自临WPF在C#2010本书)难以理解和使用xaml标记扩展
的含义是什么,并使用静态扩展?它可以用来 声明静态资源,可以声明为 ,但此XAML混淆了我:
<Button ... Foreground="{x:Static SystemColors.ActiveCaptionBrush}" >
在{X:静态SystemColors.ActiveCaptionBrush},什么是在这里静态角色 ,以及如果我在这里使用x:Dynamic,会发生什么变化?该 书上说这XAML相当于这个隐藏代码:
cmdAnswer.Foreground = SystemColors.ActiveCaptionBrush;
这意味着,如果我有静态属性的类,我应该 能够使用这样的事情:
<Button ... Foreground="{x:Static MyClass.SomeStaticProperty}" >
但它没有工作,尽管我创建了一个类,我尝试使用 本地:静态(指本地命名空间),但VisualStudio 不允许我使用它。这是什么实现 的正确方法?
绑定的含义是什么(超越明显的含义,什么是 发生在我绑定时)?它用于资源绑定,或数据或元素绑定。我能够理解元素绑定,但绑定到不是元素的对象导致问题。对于 例如:
<TextBlock Text="{Binding Source={x:Static SystemFonts.IconFontFamily}, Path=Source}"></TextBlock>
这是有约束力的文本到SystemFonts.IconFontFamily 财产,有什么用X:静态在这种情况下,如何将它绑定 的财产类我创造了什么?还有如何更新 文本属性的文本字段,如果绑定 目标的值发生变化?由于绑定,它应该自己更新,这是 的情况下?
本书中的所有示例都使用SystemFonts.IconFontFamily, 没有我见过的解释了这种绑定的用法,以及如何为我创建的类执行此操作?在这方面的一些帮助是 需要。我想问一下关于绑定的更多信息,但我会在关于绑定的单独问题 中这样做。
最后,推荐一本书或资源,解释什么是 发生的事情,而不是如何做到这一点?
感谢您的回答! – SpeedBirdNine