6

我正在从 argb 定义颜色,例如

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

在 Visual Studio 2012 中,winRT 应用程序说这是用 [security critical] 标记的。有什么原因吗?我尝试搜索,没有结果。不知道为什么这与安全有关。

更新:

现在我注意到,不仅 FromArgb(...); 方法给出了这个 [SECURITY CRITICAL] 警告。这些中的任何一个:

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

也可以。

4

3 回答 3

4

System.Drawing 是非托管 GDI+ 代码的包装器。据我了解,WinRT 不支持 GDI+:

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

本机渲染代码将需要使用 Direct2D 完成。

于 2012-10-20T22:36:30.470 回答
2

您应该改用Colorfrom System.Windows.Media

于 2012-10-21T15:42:35.833 回答
2

您的消息不是警告,而是有关方法签名属性的信息。

SECURITY CRITICAL 是一个代码属性,真正的类名是 SecurityCriticalAttribute。必须将此属性赋予需要完全信任才能执行代码的方法(通常是本机代码调用、不安全代码、图形资源(通常需要非托管代码等))。

如果未授予方法完全信任,则安全关键方法会引发异常。

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

于 2012-10-21T14:36:23.113 回答