Pergunta

Eu sei que o modelo de componente indica se uma propriedade tem um valor padrão ou não, por meio de Método de PropertyDescriptor.

As formas básicas do Windows Control classe, tem algumas propriedades como ECOLOR, BACOLOR E FONTE, isso padrão para o mesmo valor do pai, mas não consegui encontrar nenhum TypeDescriptor ou PropertyDescriptor Isso fornece esses valores padrão. A classe de controle não implementa o ICUSTOMTEDESCRIPTOR nem possui um TypeDescriptionProviderAttribute.

Como a classe de controle indica que essas propriedades devem ser serializadas ou não? Onde ele fornece os Propriedadescriptores para essas propriedades?

Obrigado!!!

Foi útil?

Solução

Eles não têm valores padrão. Essas propriedades são propriedades "ambiente". A classe de controle detecta que uma atribuição de propriedade ocorreu para eles. Se isso nunca aconteceu, ele usa a propriedade correspondente do pai. O que é bom, garante que os controles da criança usem as mesmas cores e fonte que o recipiente.

Existe um método deverieializeforecolor () na classe de controle. É interno e não pode ser substituído pelo código do usuário. O mesmo para as outras propriedades. Tenha uma aparência com refletor ou fonte de referência .NET.

o Biblioteca MSDN Documenta -os assim:

Os controles do Windows Forms usam propriedades ambientais para que os controles infantis possam parecer o ambiente circundante. Uma propriedade ambiente é uma propriedade de controle que, se não definida, é recuperada do controle dos pais. Se o controle não tiver um pai e a propriedade não estiver definida, o controle tenta determinar o valor da propriedade ambiente através da propriedade do site. Se o controle não estiver localizado, se o site não suportar propriedades ambientais ou se a propriedade não estiver definida nas proporties do ambiente, o controle usará seus próprios valores padrão. Normalmente, uma propriedade ambiente representa uma característica de um controle, como o backcolor, que é comunicado a um controle da criança. Por exemplo, um botão terá o mesmo backcolor que seu formulário pai por padrão. As propriedades ambientais fornecidas pela classe de controle incluem: cursor, fonte, backcolor, percorrer e direita.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top