2012-07-25 79 views
1

我在处理托管的自定义Windows 8控件时遇到了“灾难性故障”异常,并且已设法将此问题本地化为非常简单的测试用例。现在我被卡住了。尝试动画自定义枚举依赖项属性时出现“灾难性故障”

说我有这样定义的枚举:

public enum Modes 
{ 
    Mode1, 
    Mode2 
} 

然后,我有这样的

定义的依赖项属性的自定义控制,我要尽量属性从模式1切换到Mode2通过VisualState像这样:

<VisualStateManager.VisualStateGroups> 
    <VisualStateGroup x:Name="VisualStateGroup"> 
     <VisualState x:Name="VisualState"> 
      <Storyboard> 
       <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(CustomControl1.Mode)" Storyboard.TargetName="customControl1"> 
        <DiscreteObjectKeyFrame KeyTime="0"> 
         <DiscreteObjectKeyFrame.Value> 
          <local:Modes>Mode2</local:Modes> 
         </DiscreteObjectKeyFrame.Value> 
        </DiscreteObjectKeyFrame> 
       </ObjectAnimationUsingKeyFrames> 
      </Storyboard> 
     </VisualState> 
    </VisualStateGroup> 
</VisualStateManager.VisualStateGroups> 

要做到这一点,我只是打电话给GoToSta TE()当按钮被点击:

private void Button_Click_1(object sender, RoutedEventArgs e) 
{ 
    VisualStateManager.GoToState(this, "VisualState", false); 
} 

而且我得到了臭名昭著的“灾难性故障(从HRESULT异常:0x8000FFFF(E_UNEXPECTED))”

我试图在创建完全相同的测试案例Silverlight和它工作得很好。这是Windows 8 XAML RC错误还是我做错了什么?

+0

我一直发现这些“灾难性故障”事件是WinRT框架中的一个缺陷,真是无益的错误。 您是否尝试过在视觉状态下使用标准故事板并使用Visual状态管理器启动(离开目标属性),只更改个人元素 您是否还尝试过使用字符串作为依赖属性而不是枚举。 会测试自己,但我的Win 8机器目前在别处。 Win 8的这么多仍然觉得像一个测试版,expecialyl与错误;-( – Darkside 2012-07-26 10:46:32

+0

我已经改变它为int现在,它工作正常(除了它使一个丑陋的API) – 2012-07-26 10:55:32

回答

1

艾伦 - 这(自定义枚举)是不会工作的WinRT不幸的。

+0

哎哟。甚至在最终版本中,你会推荐使用什么呢?int工作正常,但是完全没有上下文,字符串很杂乱。 – 2012-07-27 05:25:00

相关问题