Come funziona la classe di controllo, fornire i valori di default ForeColor, BackColor e caratteri?
-
23-09-2019 - |
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 !!!
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.