2016-12-04 9 views
0

私はUWPプラットフォームでHelixToolkitを使用していました。最近私はいくつかの機能を変更しようとしているので、新しいビューポートを作成し、HelixToolkitを模倣しました。 HelixToolkitで発生しなかった遭遇した問題がここにあります。ItemsPanelRootをSwapChainPanelにキャストする方法

Viewport(ItemsControlクラスから派生したクラス)でSwapChainPanelを作成するために、HelixToolkitはItemsPanelRootをSwapChainPanelに直接変換します。

System.InvalidCastExceptionの:

this.d3dTarget = new SwapChainTarget((SwapChainPanel)this.ItemsPanelRoot, this); 

しかし、私のコードは、この行に来たときに、ランタイムは例外ポップ「タイプ のオブジェクトをキャストすることができませんがWindows.UI.Xaml.Controls.StackPanel 'を入力して ' Windows.UI.Xaml.Controls.SwapChainPanel 'と入力します。鋳造前に右の一時停止

、私は enter image description here は、なぜそれがのStackPanelを示している参照してください?

HelixToolkitの前に一時停止すると、一連の内部例外が表示されます。

これら2つの違いの原因は何ですか?そして、他のアイテムを含めるためにラップアップされた方法でスワップチェーンを作成する別の方法がありますか?

答えて

2

あなたが引用した行はSwapChainPanelを作成しません。ただItemsPanelTemplateに入れられたSwapChainPanelを取得します。

これは、ここで起こっている:あなたは同じ動作を再現したい場合はhttps://github.com/helix-toolkit/helix-toolkit/blob/d386c9e1313ae1bbb1c179a17007e9b59ae221a6/Source/HelixToolkit.UWP/Themes/Generic.xaml

<Style TargetType="controls:Viewport3DX"> 
    <Setter Property="ItemsPanel"> 
     <Setter.Value> 
      <ItemsPanelTemplate> 
       <SwapChainPanel/> 
      </ItemsPanelTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

、あなたのItemsPanelItemsPanelTemplateがそれに応じて設定されていることを確認してください。

+0

私が見ているXamlファイルがあります。すぐに試してみます。 –

+0

ありがとう、ありがとうございます。 –

関連する問題