XAML, привязка свойств Width и Height к тем же свойствам другого элемента управления - PullRequest
7 голосов
/ 28 января 2010

Я пытаюсь создать эффект отражения, и он отлично работает, за исключением того, что мне нужно жестко закодировать некоторые значения. Это мой 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>

Я пытался заменить Border's 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 ]

16 голосов
/ 28 января 2010

Вместо привязки к свойствам высоты и ширины UserControl, вы пытались связать свойства Height и Width Border со свойствами ActualHeight и ActualWidth UserControl?

<Border 
 Width="{Binding ElementName=CurrentPresenter, Path=ActualWidth}"
 Height="{Binding ElementName=CurrentPresenter, Path=ActualHeight}" >
0 голосов
/ 14 августа 2016

изменить путь к ViewportWidth! его работа для меня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...