【问题标题】:Setting the UserControl property to child controls - WPF, Silverlight将 UserControl 属性设置为子控件 - WPF、Silverlight
【发布时间】:2011-03-23 01:45:57
【问题描述】:
我有一个带有 Button 和 TextBlock 的用户控件。
我想将 Button 和 TextBlock 的背景设置为 Usercontrol 的背景。(即,我正在尝试绑定到 usercontrol 的 Background 属性)。
请告诉我如何在 XAML 中执行此操作。
这在 Silverlight 和 WPF 中有什么不同吗?
【问题讨论】:
标签:
wpf
silverlight
binding
user-controls
【解决方案1】:
您可以绑定到 Ancestor 控件,例如:
<Button Background="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type UserControl}},Path=Background}"/>
同样适用于 TextBlock,但它的背景已经是透明的
根据thisSilverlight 不支持 FindAncestor
【解决方案2】:
使用模板绑定:
<Border Background="{TemplateBinding Background}">
<TextBlock Background="{TemplateBinding Background}" Text="something"/>
</Border>
只需在您的用户控件(在我的情况下为边框)和 TextBlock 中设置顶级控件以使用 TemplateBinding 背景。