Я пытаюсь использовать относительное привязку и привязывать свойство Window.ActualHeight к DoubleAnimation.To свойству.Использовать относительное связывание для привязки prop Window.ActualHeight to DoubleAnimation.To prop
Относительная привязка не работает, но если я использую привязку с помощью ElementName, она работает.
НЕ РАБОТАЕТ:
<Window xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Sample.Window"
x:Name="Shell"
Title="Sample"
Width = "525"
Height = "350">
<Canvas Height="400">
<Ellipse Canvas.Left="80"
Canvas.Top="0"
Width="30"
Height="30"
Fill="LimeGreen">
<Ellipse.Triggers>
<EventTrigger RoutedEvent="Ellipse.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="(Canvas.Top)"
Duration="0:0:5"
RepeatBehavior="Forever"
AutoReverse="True"
To="{Binding RelativeSource={RelativeSource AncestorType={x:Type Window}, Mode=FindAncestor}, Path=ActualHeight}" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Ellipse.Triggers>
</Ellipse>
</Canvas>
</Window>
ЭТУ РАБОТУ:
<DoubleAnimation Storyboard.TargetProperty="(Canvas.Top)"
Duration="0:0:5"
RepeatBehavior="Forever"
AutoReverse="True"
To="{Binding ElementName=Shell, Path=ActualHeight}"/>
Это можно использовать относительное связывание с Window.ActualHeight собственности?
Редакция:
Я снова протестирован на маршрутизируемом случае Ellipse.Loaded анимация не работает, но если я изменил маршрутизируемое событие анимации работы MouseEnter. Я опубликовал весь проект.
Спасибо
Я предполагаю, что визуальное дерево не место '' под '' , так что переменная 'RelativeSource' связывания не находит его, когда он подходит визуальный дерева из ''. Это всего лишь предположение, но я его не тестировал :) –
Rachel