Domanda

So che componente modello indica se una proprietà ha un valore predefinito o no, per mezzo di Metodo ShouldSerializeValue di PropertyDescriptor .

La classe Control di base di Windows-forme, ha alcune proprietà come ForeColor, BackColor e Font , che il default è lo stesso valore del genitore, ma non ho trovato alcuna TypeDescriptor o PropertyDescriptor che fornisce questi valori standard. La classe di controllo non implementare ICustomTypeDescriptor né ha un TypeDescriptionProviderAttribute.

In che modo la classe di controllo indica che queste proprietà devono essere serializzati o no? Dove si forniscono le PropertyDescriptors per queste proprietà ??

Grazie !!!

È stato utile?

Soluzione

Non hanno valori di default. Queste proprietà sono proprietà "ambiente". La classe Control rileva che un assegnazione di proprietà si è verificato per loro. Se ciò non è mai successo, si utilizza la proprietà corrispondente dalla Capogruppo. Che è bello, assicura controlli figlio usano gli stessi colori e carattere come il loro contenitore.

C'è un metodo ShouldSerializeForeColor () nella classe di controllo. Si è interno e non possono essere sovrascritta codice utente. Lo stesso vale per le altre proprietà. Avere un look-vedere con riflettore o la fonte di riferimento NET.

Il MSDN Library documenti loro come questo:

  

controlli Windows Form utilizzano ambiente   proprietà in modo controlli figlio può   apparire come loro circostante   ambiente. Una proprietà ambiente è un   controllare proprietà che, se non impostata, è   recuperato dal controllo padre. Se   il controllo non ha un genitore,   e la proprietà non è impostata, il   controllare tentativi di determinare la   valore della proprietà ambiente attraverso   la proprietà del sito. Se il controllo è   Non situati, se il sito non lo fa   supporto proprietà di ambiente, o se la   proprietà non è impostata sul   AmbientProperties, gli usi di controllo   i propri valori di default. Tipicamente, un   proprietà di ambiente rappresenta un   caratteristica di un controllo, ad esempio   BackColor, che viene comunicato ad un   controllo figlio. Ad esempio, un pulsante   avrà lo stesso BackColor come   Modulo di genitore per impostazione predefinita. ambientale   proprietà fornite dal Controllo   Classe includono: Cursore, Font,   BackColor, ForeColor e RightToLeft.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top