WPF TemplateBinding与RelativeSource TemplatedParent这两个绑定有什么区别:<ControlTemplate TargetType="{x:Type Button}">
<Border BorderBrush="{TemplateBinding Property=Background}">
<ContentPresenter />
</Border></ControlTemplate>和<ControlTemplate TargetType="{x:Type Button}">
<Border BorderBrush="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Background}">
<ContentPresenter />
</Border></ControlTemplate>?
3 回答
倚天杖
TA贡献1828条经验 获得超3个赞
TemplateBinding并不完全相同。MSDN文档通常由那些必须测试单音节SDE关于软件功能的人编写,因此细微差别并不完全正确。
TemplateBindings在编译时根据控件模板中指定的类型进行评估。这允许更快地实例化编译模板。只是在模板绑定中摸索名称,您将看到编译器将标记它。
绑定标记在运行时解析。虽然执行速度较慢,但绑定将解析在模板声明的类型上不可见的属性名称。慢一点,我会指出它的相对类型,因为绑定操作只需要很少的应用程序的cpu。如果你是高速爆破控制模板,你可能会注意到它。
作为一个实践,你可以使用TemplateBinding,但不要担心绑定。
添加回答
举报
0/150
提交
取消