Раскадровка внутри пользовательского элемента управления не работает

1

Я разрабатываю приложение для Windows 8 Store. Я создал следующий пользовательский элемент управления:

<UserControl x:Class="RTV_W8.AnimatedImage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:RTV_W8" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <UserControl.Resources> <!-- Animates the rectangle opacity. --> <Storyboard x:Name="ContainerGridStoryboard"> <DoubleAnimation Storyboard.TargetName="MainGrid" Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:5" AutoReverse="False"> </DoubleAnimation> </Storyboard> </UserControl.Resources> <Grid x:Name="MainGrid" CacheMode="BitmapCache"> <Image Stretch="UniformToFill" x:Name="PictureImage"/> </Grid> </UserControl>

со следующим cs файлом (только частично отображаемым здесь)

        public AnimatedImage()
    {
        this.InitializeComponent();
        this.Loaded += AnimatedImage_Loaded;
        this.PictureImage.Loaded += PictureImage_Loaded;
    }

    void AnimatedImage_Loaded(object sender, RoutedEventArgs e)
    {
        this.ContainerGridStoryboard.Begin();
    }

моя проблема заключается в том, что раскадровка не запускается при загрузке изображения. Этот пользовательский элемент управления используется внутри другого пользовательского контроля. Я попробовал несколько вариантов, пытаясь заставить анимацию работать, ни одна из них не работала. Я хочу, чтобы пользовательский элемент управления отображал его непрозрачность в представлении вместо того, чтобы просто извиваться. Хотя я могу видеть через точки останова, что ContainerGridStoryboard.Begin(); выполнено ничего не происходит на экране

EDIT: в другом usercontrol ведьма позже используется в datatemplate, если я применяю раскадровку на главной сетке, она работает, usercontrol становится анимированной. Но если я применяю его во второй сетке (содержащейся в основной сетке) или любом другом элементе, анимация не работает. Вот почему я создал анимацию в первую очередь.

  • 0
    Одна вещь может быть в раскадровке, вам может понадобиться создать привязку ...
  • 0
    я установил свойство зависимости (animatedImage имеет свойство Source) и привязку правильно. Я могу видеть изображения (переплет правильный). Но изображения просто всплывают. Раскадровка (ведьма должна анимировать сетку и изображение) не работает.
Показать ещё 3 комментария
Теги:
xaml
user-controls

2 ответа

0
Лучший ответ

Я только что решил проблему. Таким образом, мой пользовательский контроль находился внутри пары сеток, внутри другого пользовательского контроля, внутри шаблона данных внутри gridview. Проблема заключалась в том, что основная сетка, содержащая анимацию, была установлена с помощью CacheMode = "BitmapCache". Когда я удалил это свойство, изображения исчезли.

0

Когда я устанавливаю источник изображения и вставляю UserControl на страницу, изображение исчезает, как и ожидалось.

  • 0
    я проверю это сегодня
  • 0
    Я проверил элемент управления на пустой странице, и он работает, как ожидалось. но если я помещу элемент управления в другой элемент управления, внутри таблички данных, внутри вида сетки анимация не сработает. Изображение просто всплывает
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню