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

时间:2010-01-28 09:04:35

标签: xaml binding user-controls height 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>

我已尝试将Width="500"Height="200"替换为Width="{Binding ElementName=CurrentPresenter, Path=Width}"Height="{Binding ElementName=CurrentPresenter, Path=Height}",但似乎无效。

这段代码出了什么问题?

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

<UserControl x:Name="CurrentPresenter" Height="200" Width="500" />

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

2 个答案:

答案 0 :(得分:16)

您是否尝试将Height的{​​{1}}和Width属性绑定到Border和{{},而不是绑定到UserControl的高度和宽度属性1}} UserControl的属性?

ActualHeight

答案 1 :(得分:0)

更改ViewportWidth的路径!它为我工作