Recientemente comencé a trabajar con Silverlight e inmediatamente noté la diferencia entre el BCL de Silverlight y el .Net y WPF completos. Para algunos de ellos, encontré excelentes soluciones publicadas en línea por otros desarrolladores, y otras fueron más complicadas. ¿Qué características/clases le sorprendieron/decepcionaron al encontrar ausentes de las bibliotecas de clases de Silverlight, y qué hizo para evitarlas?¿Qué características de .Net/WPF echas de menos cuando trabajas en Silverlight?
Algunos de los míos eran:
- Ningún evento provocó animaciones - He creado una clase de ayuda con los métodos estáticos para unir cada tipo de animación que he usado para guiones gráficos en una biblioteca compartida, y en el nivel de aplicación. Creo clases con métodos estáticos para ponerlos todos juntos como lo hubiera hecho en XAML si trabajara en WPF. Hasta ahora, esta ha sido una buena solución para mantener mis animaciones organizadas y la lógica fuera de mis controladores de eventos.
- ScrollViewer no es compatible con la rueda del mouse - Adam Cooper creó una excelente biblioteca de clases que agrega esta funcionalidad que requiere el mínimo de código para implementar en cualquier proyecto de Silverlight. Su sitio parece estar inactivo en este momento, así que aquí hay un enlace al blog de Tim Heuer que lo explica y lo vincula (para que esté disponible cuando su sitio vuelva a estar en línea). Add mouse wheel support to ScrollViewer in Silverlight
SortedDictionary<T, K>
falta. Encontré this post que contiene una implementación, pero no terminé usándolo yo mismo.- ResourceDictionary.MergedDictionaries no está disponible - Una vez más ... encontré a alguien que implementó esto y publicó el código fuente, pero parecía ser un poco complicado. Probablemente lo resolveré un poco, pero todavía tengo que hacerlo. MergedDictionaries in Silverlight
- La propiedad de ZIndex solo está disponible en el objeto Canvas. Publiqué esto como una pregunta aquí en SO, y alguien hizo una gran sugerencia para envolver mis contenedores en una colección si eso es lo que se necesita. Se siente un poco descuidado, pero debes hacer lo que tienes que hacer. Mis contenedores están anidados a tres niveles de profundidad, por lo que podría necesitar deformarlos todos en objetos Canvas y configurar el Canvas.ZIndex tres veces para cada evento. Feo como el pecado, pero si es el único, entonces que así sea.
Me interesan los otros problemas comunes que los desarrolladores de Silverlight con más experiencia han encontrado y lo que ha hecho para solucionarlos.
Puede eliminar (4) Ahora, como se le ha añadido –
También puede quitar 2, como Silverlight 4 tiene nativa mousewheel compatible con: TextBox, ComboBox, Calendar, DatePicker y ScrollViewer (también DataGrid y ListBox). ¿Y está absolutamente seguro de 5) ZIndex? Definitivamente puede usarlo dentro de una cuadrícula escribiendo Canvas.ZIndex = 123. – texmex5
Quizás deberíamos agregar a cada respuesta a qué versión de Silverlight se refiere. Este tema es muy valioso, pero perderá su valor rápidamente con el tiempo si los lectores no pueden ver las versiones que se discuten. –