2010-01-30 10 views
13

डब्ल्यूपीएफ में हार्डवेयर त्वरण को अक्षम करने की प्रक्रिया क्या है? हकीकत में यह क्या है? क्या यह एक विंडोज़ सेटिंग है, एक विजुअल स्टूडियो सेटिंग या आप अपनी डब्लूपीएफ परियोजना के कोड में कुछ बदलते हैं? क्या यह केवल उस प्रोग्राम को प्रभावित करेगा जो आप चल रहे हैं या सिस्टम-व्यापी से करेंगे?wpf में हार्डवेयर त्वरण को कैसे अक्षम करता है?

उत्तर

-5

यह डेस्कटॉप से ​​एक सिस्टम चौड़ा सेटिंग है, पॉपअप मेनू लाने के लिए राइट क्लिक करें, गुणों पर क्लिक करें, और हार्डवेयर त्वरण को अक्षम करने के लिए वीडियो सेटिंग्स के लिए वहां चारों ओर देखो या सिस्टम ट्रे आइकन हो सकता है ग्राफिक्स सेटिंग्स के लिए। यह प्रणाली व्यापक है और स्थानीय नहीं है।

उम्मीद है कि यह मदद करता है, सर्वश्रेष्ठ संबंध, टॉम।

+3

नोट यह सिस्टम में सभी हार्डवेयर ग्राफिक्स त्वरण को अक्षम करता है, न केवल WPF। – itowlson

+0

यह अधिकांश सिस्टम में उपलब्ध नहीं है, क्योंकि एनवीडिया और एटी दोनों हार्डवेयर त्वरण को अक्षम (या यहां तक ​​कि परिवर्तित) करने की अनुमति नहीं देते हैं जब तक कि उनके ड्राइवर स्थापित नहीं होते हैं। @itowlson का सही जवाब है। – Odys

+0

@itowlson के साथ सहमत हैं। यह सभी हार्डवेयर त्वरण को अक्षम करता है जब – Jippers

21

यह एक मशीन-व्यापी रजिस्ट्री सेटिंग है। रजिस्ट्री कुंजी के लिए WPF दस्तावेज़ों और WPF प्रतिपादन को अनुकूलित करने से संबंधित अन्य विवरणों में Graphics Rendering Registry Settings देखें।

सूचीबद्ध कुंजी है: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration

MSDN दस्तावेज़ "उपलब्ध नहीं" .NET 4.5 के लिए है, तो यह एक depricated विकल्प है कि केवल 4.0 या नीचे में काम करता है हो सकता है।

+2

नीचे उल्लिखित WPF अकेले अक्षम किया जा सकता है इसे सही उत्तर – Odys

+1

_ के रूप में स्वीकार किया जाना चाहिए [आपका उत्तर किसी अन्य महल में है: जब उत्तर कोई जवाब नहीं है?] (Http: //meta.stackexchange। com/प्रश्न/225370/your-answer-is-in-another-castle-when-is-an-answer-not-an-answer) _ – MickyD

+0

यह आपके ऐप के लिए इसे अक्षम करने के लिए कहीं बेहतर है। Konstantin –

29

आप इसे .NET 3.5 SP1 से शुरू होने वाले Window स्तर पर अक्षम कर सकते हैं।

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 घटना की सदस्यता और एक ही कर सकते हैं।

वैकल्पिक रूप से आप कर सकते हैं set it on Process level:

RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly; 

सॉफ्टवेयर प्रतिपादन के लिए पूर्वता क्रम है:

  1. DisableHWAcceleration रजिस्ट्री कुंजी
  2. ProcessRenderMode
  3. RenderMode (प्रति-लक्ष्य)
संबंधित मुद्दे