سؤال

ما هو إجراء تعطيل تسريع الأجهزة في WPF؟ ما هو بالضبط؟ هل هو إعداد Windows أو إعداد Visual Studio أو أي شيء تقوم بتغييره في رمز مشروع WPF الخاص بك؟ هل سيؤثر فقط على البرنامج الذي تقوم بتشغيله أم أنه على مستوى النظام؟

هل كانت مفيدة؟

المحلول

هذا هو إعداد واسع للنظام ، من سطح المكتب ، انقر بزر الماوس الأيمن لإظهار قائمة منبثقة ، انقر فوق الخصائص ، وانظر حولك هناك لإعدادات الفيديو لتعطيل تسريع الأجهزة أو أنه قد يكون هناك رمز علبة نظام لإعدادات الرسومات . هذا هو نظام واسع وليس محلي.

أتمنى أن يساعد هذا ، مع أطيب التحيات ، توم.

نصائح أخرى

يمكنك تعطيله على 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 (لكل هدف)

إنه إعداد سجل على مستوى الجهاز. يرى إعدادات تسجيل الرسومات في مستندات WPF لمفتاح التسجيل والتفاصيل الأخرى المتعلقة بتخصيص عرض WPF.

المفتاح المدرج هو:HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration

مستند MSDN "غير متوفر" لـ .NET 4.5 ، لذلك قد يكون هذا خيارًا مخادعًا يعمل فقط في 4.0 أو أقل.

في الإصدار 4.0 ، يمكنك أيضًا الاستخدام RenderOptions.ProcessRenderMode لتعيين عملية على نطاق واسع (http://msdn.microsoft.com/en-us/library/system.windows.media.renderoptions.processrendermode.aspx).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top