我想在GUI中对元素进行分组。它们都在同一个画布中,因此它们不会在视觉上分组。其中一些我想移动,其中一些我想缩小。
当我在C#而不是XAML中实现动画时,我想知道,如果可以使用布尔值或类似的东西标记元素,以便在选择适当的动画时检查其值。
答案 0 :(得分:2)
由于您在代码隐藏中进行动画操作,因此您可以使用几乎任何想要将此额外布尔值附加到对象的方式。
作为一种简单的方法,您可以在每个元素上使用FrameworkElement.Tag
来放置您的额外数据。但是还有其他一百万种可能性。
答案 1 :(得分:0)
如果您必须将额外数据与控件相关联以标记动画,我建议使用attached property。
一般情况下,我会建议评估对象本身以确定如何为它们设置动画,但在某些情况下需要元数据。附属物完全符合这一需求。
定义静态类:
public static class AnimationType
{
public static bool GetShrink(DependencyObject obj)
{
return (bool)obj.GetValue(ShrinkProperty);
}
public static void SetShrink(DependencyObject obj, bool value)
{
obj.SetValue(ShrinkProperty, value);
}
public static readonly DependencyProperty ShrinkProperty =
DependencyProperty.RegisterAttached("Shrink", typeof(bool), typeof(AnchoredBlock), new UIPropertyMetadata(false));
}
当你去动画时,调用AnimationType.GetShrink(myControl);
并测试布尔返回以查看如何为控件设置动画。