在WPF中标记元素

时间:2011-03-23 15:28:11

标签: c# .net wpf

我想在GUI中对元素进行分组。它们都在同一个画布中,因此它们不会在视觉上分组。其中一些我想移动,其中一些我想缩小。

当我在C#而不是XAML中实现动画时,我想知道,如果可以使用布尔值或类似的东西标记元素,以便在选择适当的动画时检查其值。

2 个答案:

答案 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);并测试布尔返回以查看如何为控件设置动画。