ユーザーが XAML に保存されているさまざまな 3Dmodels を表示し、TrackballDecorator を使用して Viewport3D を操作できるプログラムがあります。これらの XAML ファイルには、WPF 3D - カメラ ビューを保存して読み込むにはどうすればよいですか? という質問への回答の変更を使用して、TrackballDecorator に適用していた変換が含まれています
最近、プロジェクトを .net 4.5 フレームワークに切り替えて、XamlReader クラスの新しい非同期機能を利用しましたが、モデルと共に保存された変換にアクセスする方法と競合が発生しました。
私が現在行っていることは次のとおりです。
private Task<TrackballDecorator> loadModel(string path)
{
var tempVP = new XamlReader().LoadAsync(XmlReader.Create(path)) as Viewport3D;
return new TrackballDecorator() { Content = tempVP, Transform = (tempVP.Camera.Transform as Transform3DGroup) };
}
XamlReader の読み込みが完了していないため、null Transform が返されるため、これは機能しません。
私がやりたいことは次のとおりです。
private async Task<TrackballDecorator> loadModelAsync(string path)
{
var tempVP = await new XamlReader().LoadAsync(XmlReader.Create(path)) as Viewport3D;
return new TrackballDecorator() { Content = tempVP, Transform = (tempVP.Camera.Transform as Transform3DGroup) };
}
しかし、LoadAsync メソッドは ではobject
なく を返すTask<object>
ため、await キーワードを使用できません。この制限を克服または回避する方法はありますか?