Я бы хотел, чтобы элемент пользовательского интерфейса WPF отображался вертикально, когда его свойство Visibility переходит в "Visible".Я не хочу жестко кодировать высоту в анимации, поскольку я хотел бы применить эту анимацию к любому элементу пользовательского интерфейса в качестве стиля.Итак, я пытаюсь использовать ScaleY, но мне не везет.Вот XAML для стиля и списка:
<Style x:Key="VerticalGrow" TargetType="ListBox">
<Style.Triggers>
<Trigger Property="Visibility" Value="Visible">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="TransformGroup.ScaleTransform.ScaleY" BeginTime="0:0:0.5" From="0" To="1" Duration="0:0:0.5" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
<ListBox Grid.Row="2" MaxHeight="60" MinHeight="60" Visibility="{Binding MyViewModel.ListBoxVisibility}" IsSynchronizedWithCurrentItem="False" ItemsSource="{Binding MyViewModel.ListBoxItems}" Style="{DynamicResource VerticalGrow}" IsTabStop="True">
</ListBox>
Я получаю исключение времени выполнения, жалуясь на то, что:
"Невозможно преобразовать значение в атрибуте" Стиль "в объект типа" Система.Windows.Style ". Не удается разрешить все ссылки на свойства в пути свойства" TransformGroup.RenderTransform.ScaleTransform.ScaleY ". Убедитесь, что соответствующие объекты поддерживают свойства. Ошибка в объекте" System.Windows.Controls.ListBox "в файле разметки" MyApp; component / mainwindow.xaml 'Строка 69, Позиция 399. "}