2010-01-30 5 views
13

Quy trình vô hiệu hóa tăng tốc phần cứng trong WPF là gì? Chính xác nó là cái gì? Nó là một cửa sổ thiết lập, một thiết lập studio trực quan hoặc một cái gì đó bạn thay đổi trong mã của dự án wpf của bạn? Nó sẽ chỉ ảnh hưởng đến chương trình mà bạn đang chạy hoặc nó sẽ theo hệ thống?Làm cách nào để tắt tăng tốc phần cứng trong wpf?

Trả lời

-5

Đó là cài đặt hệ thống, từ màn hình, nhấp chuột phải để hiển thị menu bật lên, nhấp vào thuộc tính và xem xung quanh để cài đặt video tắt tăng tốc phần cứng hoặc có biểu tượng khay hệ thống cho các cài đặt đồ họa. Đây là hệ thống rộng và không phải cục bộ.

Hy vọng điều này sẽ giúp, Trân trọng, Tom.

+3

Lưu ý điều này sẽ vô hiệu hóa TẤT CẢ tăng tốc đồ họa phần cứng trong hệ thống, không chỉ WPF. – itowlson

+0

Điều này không có sẵn trong hầu hết các hệ thống, vì cả nVidia và Ati đều không cho phép bạn vô hiệu hóa (hoặc thậm chí thay đổi) tăng tốc phần cứng miễn là các trình điều khiển của chúng được cài đặt. @ itowlson có câu trả lời đúng cho điều này. – Odys

+0

Đồng ý với @itowlson. Điều này sẽ vô hiệu hóa mọi tăng tốc phần cứng khi WPF có thể bị vô hiệu hóa được đề cập dưới đây – Jippers

21

Đây là cài đặt đăng ký toàn bộ máy. Xem Graphics Rendering Registry Settings trong tài liệu WPF cho khóa sổ đăng ký và các chi tiết khác liên quan đến tùy chỉnh hiển thị WPF.

Chìa khóa được liệt kê là: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration

Các tài liệu MSDN là "không có sẵn" cho .NET 4.5, vì vậy đây có thể là một lựa chọn depricated mà chỉ hoạt động trong 4,0 hoặc thấp hơn.

+2

Điều này sẽ được chấp nhận là câu trả lời đúng – Odys

+1

_ [Câu trả lời của bạn nằm trong một lâu đài khác: khi nào câu trả lời không phải là câu trả lời?] (Http: //meta.stackexchange. com/questions/225370/your-answer-is-in-another-castle-when-là-an-answer-not-an-answer) _ – MickyD

+0

Tốt hơn hết là bạn nên tắt nó cho ứng dụng CỦA BẠN. Xem câu trả lời khác của Konstantin –

29

Bạn có thể tắt tính năng này ở mức Window bắt đầu từ .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); 
    } 
} 

hoặc bạn có thể đăng ký SourceInitialized sự kiện của cửa sổ và thực hiện tương tự.

Hoặc bạn có thể set it on Process level:

RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly; 

Trình tự ưu tiên cho dựng hình phần mềm là:

  1. DisableHWAcceleration registry key
  2. ProcessRenderMode
  3. RenderMode (mỗi mục tiêu)