2012-10-20 119 views
6

我定義從ARGB顏色,前Color.FromArgb(...);安全消息

Color.FromArgb(255,255,0,0); 

在Visual Studio 2012,WinRT的應用程序,它說,這是標有[安全至關重要。有什麼原因爲什麼?我試過搜索,沒有結果。不知道爲什麼這涉及到安全。

更新:

現在我注意到,不僅FromArgb(...);方法給出了這個[SECURITY CRITICAL]警告。以下任何一種:

c.A = 255; 
c.R = 255; 
c.G = 0; 
c.B = 0; 

也是。

+0

System.Drawing與WPF沒有關係,所以問題的背景是什麼?你有什麼打算? – usr

+0

意圖:我很好奇這個安全屬性。或者它與安全性有何關係。 – wtsang02

回答

4

System.Drawing是一個圍繞非託管GDI +代碼的包裝。從我的理解,WinRT的不支持GDI +:

http://social.msdn.microsoft.com/Forums/en-NZ/winappswithnativecode/thread/0ba00fbd-183f-4df6-afa2-04d0ac14706a

原生渲染代碼將需要使用Direct2D進行。

+0

@stakx不知道中間有多少步驟,但最終確實是一大堆IntPtr,並調用System.Drawing.SafeNativeMethods調用DllImport(「gdi32.dll」,CharSet = CharSet。 Auto,SetLastError = true,ExactSpelling = true)]'。它已經在ASP.net應用程序中正式不受支持(儘管在大多數情況下它可以正常工作),而且對於Windows應用商店應用程序來說,它們很好地殺死了它。 'System.Drawing.Color'實際上只是一個普通的無害結構,但我認爲他們只是將整個名稱空間標記爲verboten。 –

2

您的留言不是警告,是關於方法簽名屬性的信息。

SECURITY CRITICAL是一個代碼屬性,其實名稱是SecurityCriticalAttribute。 此屬性必須給予需要完全信任才能執行代碼的方法(通常是本機代碼調用,不安全代碼,圖形資源(通常需要非託管代碼等))。

如果方法未被完全信任,則安全關鍵方法會引發異常。

更多信息:http://msdn.microsoft.com/en-us/library/system.security.securitycriticalattribute.aspx

2

您應該使用System.Windows.MediaColor代替。