Windows 8 Metro用のアプリケーションを作成しています。フレームワークコントロールをイメージにレンダリングしてハードディスクに保存する必要がありますが、方法がわかりません。これにSharpDXを使用できますか?どのようにできるのか?助けてくれてありがとう
4 に答える
これはより正しい答えだと思うので、元の質問でZeeshanが行ったコメントを繰り返したいと思います。
そのための拡張メソッドが winrt xaml ツールキットにあります。 http://winrtxamltoolkit.codeplex.com/.../WriteableBitmapRenderExtensions.cs
nuget 経由でインストールします。
> Install-Package WinRTXamlToolkit.Composition
次を使用して追加します。
using WinRTXamlToolkit.Composition;
xaml をレンダリングします。
var bitmap = await element.Render();
このスレッドをたどると、Metro の制限と、Metro が機能しない理由が説明されています。その本質は次のとおりです。
申し訳ありませんが、Xaml を要素にレンダリングしたり、独自のアプリのスクリーンショットをキャプチャしたりしても、リリース バージョンにはなりませんでした。アプリが別のアプリのスクリーンショットをキャプチャできないのは仕様です。
言及されている回避策は次のとおりです。
つまり、Direct2D を使用して図形、テキスト、画像を描画できるということです。それ以外の場合は XAML UI で描画するのと同じ形状。これは、XAML コントロールをレンダリングできることを意味するものではありません。Direct2D を代わりに使用して、同じ結果を得ることができますが、多少手間がかかります。
申し訳ありませんが、これは不可能です。WritableBitmap クラスの Render() メソッドは現在、目的を達成するには不十分です。同じ理由で、現時点ではスクリーンショットを作成できません。しかし、これらはバックログにあるものです!しかし、今、あなたは知っています。