8

我只是想我已经知道 WPF 和 XAML 语法是如何工作的...... wooong。

我收到消息:

'WithEvents' variables can only be typed as classes, interfaces or type parameters with class constraints.

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

我需要将单值用作双精度值。它稍后与代码隐藏中的故事板一起工作。

问候 错误截图

我只想用位置和大小的情节提要为红色矩形设置动画。也许 XAML 是正确的解决方案? 红色矩形

4

2 回答 2

19

要为厚度设置动画,请使用这样的 Storyboard(来自 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>

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

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

在这种情况下,将整个东西放在 a 中Canvas,并在红色矩形的位置使用 DoubleAnimation。

无论哪种方式,您遇到的错误都不是来自您提供的一小段代码,如果您想解决这个问题,请提供更多代码的使用。

编辑:因为 ThicknessAnimation 似乎在 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>
于 2011-09-03T11:13:25.367 回答
0

我认为这与您在 XAML 或代码隐藏的其他地方使用 MyRectangleMargin 所做的事情有关。请记住,Thickness 是一个结构而不是一个类,因此您将无法在需要类实例的任何地方使用它。

于 2011-09-03T10:53:51.080 回答