Pregunta

Sé que el modelo de componente indica si una propiedad tiene un valor predeterminado o no, por medio de DeberserializeSeValue Método de PropertyDescriptor.

Las formas de ventanas base Control clase, tiene algunas propiedades como Pronóstico, backcolor y fuente, ese valor predeterminado al mismo valor del padre, pero no pude encontrar ninguno TypeDescriptor o PropertyDescriptor que proporciona estos valores predeterminados. La clase de control no implementa iCustomTypedescriptor ni un typedescriptionProviderAttribute.

¿Cómo indica la clase de control que estas propiedades deben ser serializadas o no? ¿Dónde proporciona los Descriptores Property para estas propiedades?

¡¡¡Gracias!!!

¿Fue útil?

Solución

No tienen valores predeterminados. Estas propiedades son propiedades "ambientales". La clase de control detecta que se ha producido una tarea de propiedad para ellos. Si eso nunca sucedió, utiliza la propiedad correspondiente del padre. Lo cual es bueno, asegura que los controles de los niños usen los mismos colores y fuentes que su contenedor.

Hay un método debilizeforecolor () en la clase de control. Es interno y no puede ser anulado por el código de usuario. Lo mismo para las otras propiedades. Visite un vistazo con reflector o la fuente de referencia .NET.

los Biblioteca MSDN los documenta así:

Los controles de formularios de Windows usan propiedades ambientales para que los controles de los niños puedan aparecer como su entorno circundante. Una propiedad ambiental es una propiedad de control que, si no se establece, se recupera del control principal. Si el control no tiene un padre y la propiedad no está establecida, el control intenta determinar el valor de la propiedad ambiental a través de la propiedad del sitio. Si el control no está ubicado, si el Sitio no admite propiedades ambientales, o si la propiedad no está establecida en AmbientProperties, el control utiliza sus propios valores predeterminados. Por lo general, una propiedad ambiental representa una característica de un control, como la backcolor, que se comunica al control de un niño. Por ejemplo, un botón tendrá la misma backcolor que su forma principal de forma predeterminada. Las propiedades ambientales proporcionadas por la clase de control incluyen: cursor, fuente, backcolor, forecolor y Righttoleft.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top