【发布时间】:2015-06-12 23:51:51
【问题描述】:
我正在开发一个 windows phone RT XAML c# 项目。我有一个画布,里面装满了几个动态添加的球(椭圆)作为 ContentControl。我想要那个,当一个球被敲击时,只有那个 特定的球应该有动画。我在动画函数 animateBall() 中使用了故事板动画,并且动画函数工作正常。但是,我无法映射被窃听的 动画函数 animateBall() 的单个内容控件的事件。 我使用了 foreach 循环,但它将动画应用于所有球。
XAML:
<Canvas x:Name="playArea" HorizontalAlignment="Left" Height="624" Margin="10,10,0,0" VerticalAlignment="Top" Width="430">
<ContentControl x:Name="ball" Canvas.Left="167" Canvas.Top="482" Height="105" Tapped="ball_Tapped">
<Ellipse x:Name="ellipse" Fill="#FFE81B1B" Height="100" Stroke="Black" Width="100"/>
</ContentControl>
</Canvas>
c#
bool tapped;
foreach (UIElement ball in playArea.Children)
{
ball.Tapped += ball_Tapped;
double top= Canvas.GetTop(ball);
if (tapped)
{
animateBall(ball, top, playArea.ActualHeight, "(Canvas.Top)");
}
}
void ball_Tapped(object sender, TappedRoutedEventArgs e)
{
tapped = true;
}
【问题讨论】: