У меня есть пользовательский пользовательский элемент управления, который восстанавливают регистрацию свойство зависимостей HoverHeight
:свойства зависимостей анимировать
public sealed partial class VirtualPointer : UserControl
{
public static readonly DependencyProperty HoverHeightProperty =
DependencyProperty.Register("HoverHeight", typeof(double),
typeof(VirtualPointer), new PropertyMetadata(1.0,OnHoverHeightChanged));
public double HoverHeight
{
get { return (double)GetValue(HoverHeightProperty); }
set { SetValue(HoverHeightProperty, value); }
}
...
Я использую это свойство для расчета Margins
некоторых дочерних элементов управления в комбинации с по IValueConverter
.
На странице, которая использует этот контроль, я создаю Storyboard
, который должен оживить HoverHeight
свойство:
<Page ...>
<Page.Resources>
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="virtualPointer" Storyboard.TargetProperty="HoverHeight">
<LinearDoubleKeyFrame Value="1.0" KeyTime="0:0:0"/>
<LinearDoubleKeyFrame Value="0.0" KeyTime="0:0:1"/>
<LinearDoubleKeyFrame Value="1.0" KeyTime="0:0:2"/>
<LinearDoubleKeyFrame Value="0.0" KeyTime="0:0:3"/>
<LinearDoubleKeyFrame Value="1.0" KeyTime="0:0:4"/>
</DoubleAnimationUsingKeyFrames>
<!-- other DoubleAnimationUsingKeyFrames -->
</Storyboard>
</Page.Resources>
<!-- ... -->
<local:VirtualPointer Name="virtualPointer" HoverHeight="0.5"/>
</Page>
Раскадровка содержит другие анимации, которые работают, как ожидалось. Однако, когда я начинаю раскадровку, значение HoverHeight
не изменяется. Вызывается ни обработчик OnHoverHeightChanged
, ни преобразователь с новым значением. Я могу установить новое значение с помощью средства настройки свойств, которое, в свою очередь, вызывает обработчик OnHoverHeightChanged
, поэтому, вероятно, проблема с анимацией.
При запуске раскадровки не генерируется выход или исключение.
Я что-то упустил? Как я могу охарактеризовать свойство пользовательской зависимости?
Где эти два сегмента кода? Они в стиле или где-нибудь еще? – Colin
Определение класса находится в отдельном файле. ' ' является дочерним элементом сетки в окне. '' определяется в '', предоставляющем 'x: Key'. –