2014-10-27 3 views
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's 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: В другом пользовательском контроле позже используется в таблице данных, если я применяю раскадровку на главной сетке, она работает, пользовательский элемент управления анимируется. Но если я применяю его во второй сетке (содержащейся в основной сетке) или любом другом элементе, анимация не работает. Вот почему я создал анимацию в первую очередь.

+0

Одна вещь может быть в раскадровке, возможно, вам понадобится создать привязку ... – terrybozzio

+0

Я установил свойство зависимостей (animatedImage имеет свойство Source) и привязку правильно. Я вижу изображения (привязка правильная). Но изображения просто появляются. Раскадровка (ведьма должна анимировать сетку и изображение) не работает. – ventura8

+0

попробуйте с помощью триггера ... – terrybozzio

ответ

0

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

0

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

+0

Я испытаю это сегодня – ventura8

+0

Я протестировал элемент управления на пустой странице, и он работает так, как ожидалось. но если я поставлю элемент управления внутри другого элемента управления, внутри шаблона данных, внутри сетки, анимация не будет срабатывать. Изображение просто появляется вверх – ventura8

+0

теперь я пробовал usercontrol внутри сетки, внутри datatemplate, внутри gridview и анимация все еще не срабатывает – ventura8

Смежные вопросы

 Смежные вопросы