动画边距/厚度

Nas*_*aer 8 wpf code-behind storyboard thickness windows-phone-7

我只是觉得我已经知道WPF和XAML语法是如何工作的...... wrooong.

我收到了消息:

'WithEvents' variables can only be typed as classes, interfaces or type parameters with class constraints.
Run Code Online (Sandbox Code Playgroud)

请问,你知道为什么这个语法错了吗?

我需要将单个值用作double.它稍后在代码隐藏中使用故事板.

问候 错误截图

我只想用一个位置和大小的故事板为红色矩形设置动画.也许XAML无论如何都是正确的解决方案? 红色矩形

Lou*_*ann 18

要为厚度设置动画,请使用这样的故事板(来自msdn示例):

<BeginStoryboard>
    <Storyboard>    
      <!-- BorderThickness animates from left=1, right=1, top=1, and bottom=1 to
      left=28, right=28, top=14, and bottom=14 over one second. -->
      <ThicknessAnimation
        Storyboard.TargetProperty="BorderThickness"
        Duration="0:0:1.5" FillBehavior="HoldEnd" From="1,1,1,1" To="28,14,28,14" />
    </Storyboard>
  </BeginStoryboard>
Run Code Online (Sandbox Code Playgroud)

实际上,要将值为"w,x,y,z"的任何属性设置为动画,请使用ThicknessAnimation

在我看来,你想要做的是将红色矩形向右移动.

在这种情况下,将整个事物放在一个Canvas并在红色矩形的位置使用DoubleAnimation.

无论哪种方式,您获得的错误并非来自您提供的一小段代码,如果您想要解决此问题,请提供更多代码.

编辑:由于厚度动画似乎在WP7上不可用,请尝试以下方法:

<BeginStoryboard>
    <Storyboard>    
      <DoubleAnimation
        Storyboard.TargetProperty="BorderThickness.Top"
        Duration="0:0:1.5" To="15" />
      <DoubleAnimation
        Storyboard.TargetProperty="BorderThickness.Left"
        Duration="0:0:1.5" To="25" />
    </Storyboard>
  </BeginStoryboard>
Run Code Online (Sandbox Code Playgroud)