Visual Studio 2012針對不同的ViewState在IDE進行了支持。打開Device工具條,選擇特定的視圖狀態,點選Enable State recording后就可以錄制動畫了,大大增加了開發效率。不過今天在使用Blank Page的時候,發現無論我怎么加ViewStateGroup到第一個Grid中,Enable State recording一直是灰色的,而且ViewState列表中只有一個Base。而由BasicPage模板建立的就沒問題。
繼承問題?改下繼承,問題依舊。無奈查下MSDN,說要包含一個ApplicationViewStates的Group。ApplicationViewStates是個枚舉,不能XAML到Page中,這什么意思啊。最后老方法,把BasicPage中的代碼拷了過來,竟然好了。我靠為啥?仔細看看,代碼如下:
<VisualStateManager.VisualStateGroups> <!-- Visual states reflect the application's view state --> <VisualStateGroup x:Name="ApplicationViewStates"> <VisualState x:Name="FullScreenLandscape"/> <VisualState x:Name="Filled"/> <VisualState x:Name="FullScreenPortrait"/> <VisualState x:Name="Snapped"/> </VisualStateGroup> </VisualStateManager.VisualStateGroups>
突然發現看到“ApplicationViewStates”了,原來是要命名。你妹啊,這文檔寫得(英文寫的也模糊)。嘗試改下名字,問題重現。確認是名稱問題。
總結:VS2012的視圖狀態錄制功能要求在XAML中增加一個命名為ApplicationViewState的ViewStateGroup,否則該功能無法開啟。