用户控件内的情节提要不起作用
本文关键字:不起作用 控件 用户 | 更新日期: 2023-09-27 18:27:56
我正在开发一个Windows8Store应用程序。我已经创建了以下用户控件:
<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();执行时,屏幕上没有发生任何事情
编辑:在另一个稍后在数据模板中使用的用户控件中,如果我将故事板应用到它工作的主网格上,则用户控件将被设置为动画。但是,如果我将其应用于第二个网格(包含在主网格中)或任何其他元素,动画将不起作用。这就是我最初创建动画图像的原因。
我刚刚解决了这个问题。所以我的用户控件在几个网格中,在另一个用户控件中,在一个网格视图中的数据模板中。问题是包含动画图像的主网格开关设置为CacheMode="BitmapCache"。当我删除该属性时,图像会褪色。
当我设置图像的源并将UserControl嵌入到页面中时,图像会按预期淡入。