でレンダリングを強制する必要がある WPF ユーザー コントロールがありますRenderMode.SoftwareOnly
。私は.NET 3.5を使用しているので、次のようなことをしなければなりませんでした:
var hwndSource = PresentationSource.FromVisual(this) as HwndSource;
if (hwndSource != null)
{
hwndSource.CompositionTarget.RenderMode = RenderMode.SoftwareOnly;
}
しかし、これは私のアプリケーションでは機能しません.WPFプログラムはいくつかのマシンでクラッシュし、レジストリレベルでハードウェアアクセラレーションをオフにすると問題が解決するようです.
上記のコードはLoaded
、ウィンドウのイベントで記述されています。私が正しければLoaded
、コントロールがレンダリングされた後にイベントが発生します( MSDN )。そのイベントで上記のコードを使用することは理にかなっていますか? そうでない場合、どのイベントがそれに適していますか?
また、RenderMode
ビジュアルの設定はその子に影響しますか? または、子要素ごとにこれを具体的に設定する必要がありますか?