Básicamente, ¿por qué la necesidad de dos abstracciones de un concepto bastante simple?¿Cuál es la diferencia entre System.Drawing.Color y System.Windows.Media.Color?
Respuesta
System.Windows.Media.Color
es parte del espacio de nombres System.Windows.Media
:
proporciona tipos que permiten la integración de los medios ricos, incluyendo dibujos, texto y contenido de audio/vídeo en Windows Presentation Foundation (WPF) aplicaciones.
System.Drawing.Color
es parte del espacio de nombres System.Drawing
:
El espacio de nombres System.Drawing proporciona acceso a GDI + funcionalidad básica de gráficos. Se proporciona una funcionalidad más avanzada en los espacios de nombres System.Drawing.Drawing2D, System.Drawing.Imaging y System.Drawing.Text.
Supongo que este último es específico de Windows, mientras que el primero es más general y es más fácil de transportar a Mac OS, etc. para su uso en aplicaciones de Silverlight.
Se da también una advertencia sobre este último espacio de nombres que tendería a apoyar esta:
Clases dentro del espacio de nombres System.Drawing no son compatibles para su uso dentro de un servicio de Windows o ASP.NET. Intentar utilizar estas clases desde uno de estos tipos de aplicaciones puede producir problemas inesperados, como una disminución en el rendimiento del servicio y excepciones en el tiempo de ejecución.
Si bien es técnicamente cierto, no responde a la pregunta más fundamental de por qué Microsoft decidió que el concepto de color tenía que estar vinculado a los gráficos. –
No creo que haya una "necesidad" como tal, solo que tomaron una decisión temprana (probablemente incorrecta) para poner la clase Color en el sistema específico de WinForms. Dibujo - porque en ese momento , Win32 y Winforms era todo lo que había.
Más tarde, cuando querían mejorar los conceptos en "Color", no querían que WPF dependiera de WinForms. Entonces, en lugar de arreglar la situación moviendo una clase de Color más abstracta a un ensamblaje genérico, simplemente copiaron y pegaron una nueva clase de Color en WPF.
- 1. System.Drawing.Color a System.Windows.Media.Color
- 2. Conversión de System.Windows.Media.Color a System.Drawing.Color
- 3. Cómo convertir de System.Drawing.Color a System.Windows.Media.Color?
- 4. ¿Cuál es la diferencia entre {0} y ""?
- 5. Cuál es la diferencia entre = y: =
- 6. ¿Cuál es la diferencia entre .ToString (+) y ""
- 7. Cuál es la diferencia entre $ (...) y `...`
- 8. ¿cuál es la diferencia entre:.! y: r !?
- 9. ¿Cuál es la diferencia entre ".equals" y "=="?
- 10. ¿Cuál es la diferencia entre dict() y {}?
- 11. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 12. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 13. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 14. ¿Cuál es la diferencia entre + = y = +?
- 15. ¿Cuál es la diferencia entre " " y ""?
- 16. Cuál es la diferencia entre $ y jQuery
- 17. OpenGL (ES) - ¿Cuál es la diferencia entre frustum y orto?
- 18. Cuál es la diferencia entre la función() {}() y la función() {}()
- 19. ¿Cuál es la diferencia entre la abstracción y la encapsulación?
- 20. ¿Cuál es la diferencia entre @ y $ y% en MSBuild?
- 21. ¿Cuál es la diferencia entre la vinculación estática y dinámica?
- 22. ¿Cuál es la diferencia entre la sección .got y .got.plt?
- 23. ¿Cuál es la diferencia entre el colado y la coerción?
- 24. ¿cuál es la diferencia entre el complemento y la biblioteca?
- 25. ¿Cuál es la diferencia entre el casting y la conversión?
- 26. ¿Cuál es la diferencia entre WPF y la aplicación Silverlight?
- 27. ¿Cuál es la diferencia entre uno mismo y la ventana?
- 28. ¿Cuál es la diferencia entre CookieContainer y la colección Response.Cookies?
- 29. ¿Cuál es la diferencia entre la relación Composición y Asociación?
- 30. ¿cuál es la diferencia entre el material y la textura?
WPF vs Window Forms. Dos capas de interfaz de usuario, dos conjuntos de definiciones. –
Para confundir esto aún más, me he dado cuenta de que las propiedades de tipo Brush en WPF/Silverlight eligen valores en el diseñador de System.Drawing.Color (que no están disponibles en System.Windows.Media.Color), a pesar de que este espacio de nombres no está disponible para Silverlight. –
Lo que me confunde aún más es que System.Drawing.Color tiene mucha más funcionalidad en sus métodos (por ejemplo, FromArgb tiene varias sobrecargas) que System.Windows.Media.Color. – jep