Я пытаюсь создать отражательный эффект, и он работает отлично за исключением того, что у меня есть к твердому коду некоторые значения. Это - мой 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}"
но это, кажется, не работает.
Несправедливость Wha с этим кодом?
ОБНОВЛЕНИЕ: Если я установил Ширину и Высоту здесь:
<UserControl x:Name="CurrentPresenter" Height="200" Width="500" />
Это работает как ожидалось. Однако это не работает, если я установил те значения в UserControl XAML. Какие-либо идеи?
Вместо привязки к свойствам высоты и ширины элемента управления UserControl вы пытались привязать свойства Высота
и Ширина
границы
к ] ActualHeight
и ActualWidth
свойства UserControl?
<Border
Width="{Binding ElementName=CurrentPresenter, Path=ActualWidth}"
Height="{Binding ElementName=CurrentPresenter, Path=ActualHeight}" >