現在、要素をフェードアウトしてユーザー インターフェイスから削除しています。これは期待どおりに機能します。
public void HideShape()
{
if (this.TangibleShape != null)
{
DoubleAnimation animation = new DoubleAnimation();
animation.From = 1.0;
animation.To = 0.0;
animation.AutoReverse = false;
animation.Duration = TimeSpan.FromSeconds(1.5);
Storyboard s = new Storyboard();
s.Children.Add(animation);
Storyboard.SetTarget(animation, this.TangibleShape.Shape);
Storyboard.SetTargetProperty(animation, new PropertyPath(ScatterViewItem.OpacityProperty));
s.Begin(this.TangibleShape.Shape);
s.Completed += delegate(object sender, EventArgs e)
{
// call UIElementManager to finally hide the element
UIElementManager.GetInstance().Hide(this.TangibleShape);
};
}
}
問題は、場合によっては不透明度を再度 1 に設定したいのですが、TangibleShape.Shape
(それはScatterViewItem
) コマンドを無視することです。もう一度フェードアウトすると、要素が表示され、すぐにフェードアウトが始まります。この問題を解決する方法がわかりません。誰か私にヒントがありますか?