2

Microsoft.Phone 名前空間 (ピボット、パノラマなど) にある Windows Phone 8 アプリにコントロールを追加すると、XAML デザイナーは次のメッセージをスローします。

COM コンポーネントへの呼び出しからエラー HRESULT E_FAIL が返されました。

スタック トレースは異なるようです。ドキュメント アウトラインでパノラマを選択した後のトレースを次に示します。

at Microsoft.Phone.Controls.Design.PanoramaItemAdorner.Activate(ModelItem item)
   at Microsoft.Windows.Design.Interaction.AdornerProvider.InvokeActivate(EditingContext context, ModelItem item)
   at MS.Internal.Features.AdornerProviderFeatureConnector.FeatureProvidersAdded(ModelItem item, IEnumerable`1 extensions)
   at Microsoft.Windows.Design.Policies.PolicyDrivenFeatureConnector`1.OnPolicyItemsChanged(Object sender, PolicyItemsChangedEventArgs e)
   at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
   at Microsoft.Windows.Design.Policies.ItemPolicy.OnPolicyItemsChanged(PolicyItemsChangedEventArgs e)
   at Microsoft.Windows.Design.Policies.SelectionPolicy.OnSelectionChanged(Selection newSelection)
   at Microsoft.Windows.Design.ContextItemManager.SubscribeProxy`1.SubscribeContext(ContextItem item)
   at Microsoft.Windows.Design.SubscribeContextCallback.Invoke(ContextItem item)
   at Microsoft.Windows.Design.EditingContext.DefaultContextItemManager.OnItemChanged(ContextItem item)
   at Microsoft.Windows.Design.EditingContext.DefaultContextItemManager.SetValue(ContextItem value)
   at Microsoft.Expression.DesignSurface.ViewModel.Extensibility.ExtensibilityManager.SetSelection(Selection selection)
   at Microsoft.Expression.DesignSurface.ViewModel.Extensibility.ExtensibilityManager.OnViewModelEarlySceneUpdatePhase(Object sender, SceneUpdatePhaseEventArgs args)
   at Microsoft.Expression.DesignSurface.ViewModel.SceneUpdatePhaseEventHandler.Invoke(Object sender, SceneUpdatePhaseEventArgs args)
   at Microsoft.Expression.DesignSurface.ViewModel.SceneViewModel.FireEarlySceneUpdatePhase(SceneUpdatePhaseEventArgs args)
   at Microsoft.Expression.DesignSurface.Pipeline.SceneViewUpdateScheduleTask.UpdateEarly()
   at Microsoft.Expression.Utility.Scheduler.ScheduleTask.Update()
   at Microsoft.Expression.Utility.Scheduler.SchedulingService.DispatchTasksAtPriority(DispatcherPriority priority)
   at Microsoft.Expression.Utility.Scheduler.SchedulingService.DispatcherToken.Dispatch(Object arg)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

ファイルがコントロールと共に読み込まれると、スタック トレースは次のようになります。

at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
   at MS.Internal.XcpImports.Collection_InsertValue[T](PresentationFrameworkCollection`1 collection, UInt32 index, CValue value)
   at MS.Internal.XcpImports.Collection_InsertDependencyObject[T](PresentationFrameworkCollection`1 collection, UInt32 index, DependencyObject value)
   at System.Windows.PresentationFrameworkCollection`1.InsertDependencyObject(Int32 index, DependencyObject value)
   at System.Windows.Controls.UIElementCollection.InsertInternal(Int32 index, UIElement value

Blend では同じ .xaml ファイルが正常に機能し、コントロールが削除されるとすぐに、デザイナーは再び作業を開始します。

Windows Phone 8 SDK、Visual Studio、および Silverlight SDK とランタイムのアンインストール/修復を試みました。

他のアイデアはありますか?

4

3 に答える 3

3

私は同じ問題を抱えていて、多くのフォーラムで議論されたすべての回答を試しました.

最後に、プロジェクトではなく「ソリューション」ファイル (.sln) を削除し、すべてのプロジェクトを新しいソリューションに戻しました。

使用: VisualStudio Express 2012

手順:

  • WindowsExplorer で、プロジェクトが含まれているソリューション (.sln) ファイルを削除します。
  • VisualStudio でメイン プロジェクト ファイル (.csproj) を開きます。
  • 次に、他のすべての「既存のプロジェクト」を新しいソリューションに追加します。

今はうまくいきます...お役に立てば幸いです。

于 2013-01-10T17:21:24.603 に答える
0

参照 System.Windows.Controls.DataVisualization.Toolkit を追加すると同じ問題が発生し、このエラーが発生しました。その後、参照 System.Windows.Controls.Toolkit を次のパスから追加しました: C:\Program Files\Microsoft SDKs\Silverlight\v3.0\Libraries\Client または C:\Program Files(x86)\Microsoft SDKs\Silverlight\ v3.0\Libraries\Client と VS は正常に動作します。多分それはあなたを助けるでしょう。

于 2013-11-15T06:02:08.740 に答える
0

2つの考えは関連しているかもしれません...

  1. 使用されているテンプレートを確認してください。デザイナーがそれらを見つけられず、そのエラーがスローされている可能性があります。テンプレートが共有ディクショナリにある場合は、可能な限りページ/コントロールのコントロール定義に戻してみてください。
  2. Xaml で使用しているコンバーター コードを調べます。設計時モードは適切なデータを処理しないため、コンバーターは、設計者が処理できる有効なデータを返すことによって、null の状況または不適切なデータの状況を処理しますか? string.empty 対変換元の生オブジェクトなど。言い換えれば、どのデザインタイムモードが生きているかというネガティブな状況を適切に処理しますか?
于 2013-04-12T15:26:20.233 に答える