17

WPFでハードウェアアクセラレーションを無効にする手順は何ですか?正確には何ですか?これは、Windows設定、Visual Studio設定、またはWPFプロジェクトのコードで変更したものですか?実行しているプログラムにのみ影響しますか、それともシステム全体に影響しますか?

4

4 に答える 4

46

Window.Net 3.5 SP1 以降のレベルで無効にすることができます。

public partial class MyWindow : Window
{
    public MyWindow()
        : base()
    {
        InitializeComponent();
    }

    protected override void OnSourceInitialized(EventArgs e)
    {
        var hwndSource = PresentationSource.FromVisual(this) as HwndSource;

        if (hwndSource != null)
            hwndSource.CompositionTarget.RenderMode = RenderMode.SoftwareOnly;

        base.OnSourceInitialized(e);
    }
}

SourceInitializedまたは、ウィンドウのイベントを購読して同じことを行うことができます。

または、プロセスレベルで設定することもできます:

RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;

ソフトウェア レンダリングの優先順位は次のとおりです。

  1. DisableHWAcceleration レジストリ キー
  2. ProcessRenderMode
  3. RenderMode (ターゲットごと)
于 2012-03-21T10:38:27.943 に答える
16

バージョン 4.0 ではRenderOptions.ProcessRenderMode、プロセス全体の設定 ( http://msdn.microsoft.com/en-us/library/system.windows.media.renderoptions.processrendermode.aspx ) を使用することもできます。

于 2012-04-10T10:36:49.640 に答える
-8

これはシステム全体の設定です。デスクトップから、右クリックしてポップアップ メニューを表示し、プロパティをクリックして、ビデオ設定を調べてハードウェア アクセラレーションを無効にするか、グラフィック設定用のシステム トレイ アイコンがあることを確認します。 . これはシステム全体であり、ローカルではありません。

于 2010-01-30T22:00:08.587 に答える