Silverlight Usercontrol基本属性绑定

Silverlight Usercontrol基本属性绑定,silverlight,Silverlight,嗨 我有一个Silverlight UserControl,我将UserControl.Background属性绑定到其中的一个border元素。我找到了一种简单的方法来绑定背景,如下所示: <UserControl x:Name="root" x:Class="TestProject.MyControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http:

我有一个Silverlight UserControl,我将UserControl.Background属性绑定到其中的一个border元素。我找到了一种简单的方法来绑定背景,如下所示:

<UserControl x:Name="root"
    x:Class="TestProject.MyControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="Red"  >

   <Border x:Name="brdMain" Background="{Binding Path=Background, ElementName=root }" >
         etc... .... ...
   </Border>
那么,有没有其他更好的方法来绑定我的Usercontrol后台属性,而不必这样命名我的Usercontrol:x:name=“root”

谢谢

试试

Background="{Binding Background, RelativeSource={RelativeSource AncestorType={x:Type UserControl}, Mode=FindAncestor}}"
编辑:

由于上述内容仅在WPF中有效(SL仅支持TemplatedParent和Self),因此可以采用不同的方法。您可以在
UserControl
上创建一个
dependencProperty
propdp
是Visual Studio中的IntelliSense片段),该属性将适当地设置子
Border.Background


我试图理解为什么您要在
用户控件上设置
背景
,而不是简单地在
边框上设置它
,并从视觉角度将
用户控件保持为空;允许它成为表示视觉效果的子控件的物理容器

Silverlight 5中存在祖先相对绑定-

不工作。。。获取以下错误:在类型中找不到属性“AncestorType”RelativeSource@danbordArg…SL不支持FindAncestor;让我看看是否还有另一个wayWell我想避免为该属性使用自定义DP(实际上我正在使用其他一些属性来绑定,如BorderBrush、BorderThickness,我不想为它们中的每一个创建DP)@danbord请记住,如果您通过样式绑定这些,那么您可以在绑定中使用TemplatedParent,这是一种更简单的方法;请记住,在SL中使用与WinForms应用程序略有不同的设计方法。
Background="{Binding Background, RelativeSource={RelativeSource AncestorType={x:Type UserControl}, Mode=FindAncestor}}"