我只是觉得我已经知道WPF和XAML语法如何工作.... wrooong。
我收到了消息:
'WithEvents' variables can only be typed as classes, interfaces or type parameters with class constraints.
请问,你知道为什么这种语法错了吗?
我需要将单个值用作double。它稍后会在代码隐藏中使用故事板。
此致
我只想用位置和大小的故事板为红色矩形设置动画。也许XAML无论如何都是正确的解决方案?
答案 0 :(得分:17)
要为厚度设置动画,请使用这样的故事板(来自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
在我看来,你想要做的是将红色矩形向右移动。
在这种情况下,将整个事物放在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>
答案 1 :(得分:0)
我认为这与您在XAML中的其他地方使用MyRectangleMargin或代码隐藏有关。请记住,Thickness是一个结构而不是一个类,所以你不能在任何需要类实例的地方使用它。