XAML,将Width和Height属性绑定到其他控件的相同属性

JAG*_*JAG 7 height xaml binding user-controls width

我正在尝试创建一个反射效果,它工作得很好,除了我必须硬编码一些值.这是我的XAML:

 <Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="60"/>
        <RowDefinition />
        <RowDefinition Height="80"/>
    </Grid.RowDefinitions>
    <StackPanel Grid.Row="1" VerticalAlignment="Center">
        <UserControl x:Name="CurrentPresenter" />
        <Border Width="500" Height="200" >
            <Border.Background>
                <VisualBrush Visual="{Binding ElementName=CurrentPresenter}" >
                    <VisualBrush.Transform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1" ScaleY="-1" CenterX="500" CenterY="99" />
                        </TransformGroup>
                    </VisualBrush.Transform>
                </VisualBrush>
            </Border.Background>
            <Border.OpacityMask>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.6">
                        <GradientStop Offset="-0.6" Color="Black"></GradientStop>
                        <GradientStop Offset="0.6" Color="Transparent"></GradientStop>
                    </LinearGradientBrush>
                </Border.OpacityMask>
        </Border>
    </StackPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)

我试图取代Border's Width="500"Height="200"by Width="{Binding ElementName=CurrentPresenter, Path=Width}",Height="{Binding ElementName=CurrentPresenter, Path=Height}"但它似乎不起作用.

这段代码出了什么问题?

更新:如果我在这里设置宽度和高度:

<UserControl x:Name="CurrentPresenter" Height="200" Width="500" />
Run Code Online (Sandbox Code Playgroud)

它按预期工作.但是,如果我在UserControl XAML中设置这些值,它将不起作用.有任何想法吗?

Tab*_*ool 16

而不是绑定到该用户控件的高度和宽度属性,你尝试过绑定HeightWidth的性质BorderActualHeightActualWidth用户控件的属性?

<Border 
 Width="{Binding ElementName=CurrentPresenter, Path=ActualWidth}"
 Height="{Binding ElementName=CurrentPresenter, Path=ActualHeight}" >
Run Code Online (Sandbox Code Playgroud)