自定义附加属性有什么问题?

时间:2010-03-05 11:18:08

标签: silverlight

在visual studio中,当运行故事板时,我会收到“XAML解析错误”。应用程序启动但是当我鼠标悬停已经模板化的按钮时,会显示错误。

我的按钮模板(使用视觉状态等)有一个圆形,可以缩放通过自定义附加属性传入的内容。

在运行时引发错误的代码是以下值属性:

<DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
    Storyboard.TargetName="Document"
    Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
  <EasingDoubleKeyFrame KeyTime="00:00:00.7000000"
     Value="{Binding Path=(local:MyAttachedProperties.Scaling), RelativeSource={RelativeSource TemplatedParent}}" />
</DoubleAnimationUsingKeyFrames>;

附加属性的代码是:

public class MyAttachedProperties
{
  public static readonly DependencyProperty ScalingProperty =
    DependencyProperty.RegisterAttached("Scaling",
      typeof(double), typeof(MyAttachedProperties), null);

  // Scaling
  public static double GetScaling(DependencyObject obj) 
  { 
    return (double)obj.GetValue(ScalingProperty); 
  }
  public static void SetScaling(DependencyObject obj, double value) 
  { 
    obj.SetValue(ScalingProperty, value); 
  }
}

对于我的按钮我有:

 <Button Height="76"
         Content="Gallery"
         Style="{StaticResource MyRotatingButtonStyle}" 
         Padding="10"
         local:MyAttachedProperties.Scaling="2" />

1 个答案:

答案 0 :(得分:1)

在Silverlight中,您无法绑定它们不是从FrameworkElement派生的动画对象,这是Silverlight 3中绑定工作所必需的。

要实现目标,您需要编写一些代码来查找EasingDoubleKeyFrame并直接调整值。

相关问题