Domanda

Per un UserControl C# su Windows Mobile (anche se rispondi se lo conosci per Windows completo... potrebbe funzionare) come si modifica ciò che viene visualizzato nella finestra Proprietà Designer per una delle proprietà pubbliche del controllo.Per esempio:

private Color blah = Color.Black;

public Color Blah
{
    get { return this.blah; }
    set { this.blah = value; }
}

Questo viene visualizzato per il controllo, ma è nella categoria "Varie" e non ha descrizione o valore predefinito.Ho provato a utilizzare le impostazioni in System.ComponentModel come "DesignerCategory", come ad esempio:

[DesignerCategory("Custom")]

Ma dice che questo è valido solo per le dichiarazioni di classe...avrei giurato che fossero gli elementi System.ComponentModel che ho usato prima...

Aggiornamento:

@Giovanni ha detto:

DesignCatogy viene utilizzato per dire se la classe è un modulo, componente ecc.

Prova questo:

[Categoria("Personalizzato")]

C'è uno spazio dei nomi particolare che devo utilizzare per ottenerli?Li ho provati esattamente e il compilatore non li riconosce.

In .NETCF tutto quello che mi sembra di avere a disposizione da System.ComponentModel è:

DataObject,
DataObjectMethod,
DefaultValue,
DesignerCategory,
DesignTimeVisible,
EditorBrowsable

L'unico a cui non urla è EditorBrowsable

È stato utile?

Soluzione

Questo ti è utile?Non sono interessato allo sviluppo di CF, ma sembra che sia necessario aggiungere alcuni metadati XML per abilitarlo:

http://blogs.msdn.com/bluecollar/archive/2007/02/08/adding-compact-framework-design-time-attributes-or-more-fun-with-textboxes.aspx

Lettura interessante..Sembra che gran parte del supporto in fase di progettazione sia stato eliminato da CF perché non li progetti sui dispositivi.Il che mi sembra un po' strano..Non riesco a immaginare di utilizzare un palmare come piattaforma di sviluppo!

Scorri verso il basso circa a metà per le cose migliori ;)

Altri suggerimenti

DesignerCatogy è usato per dire se la classe è un modulo, un componente ecc.

Per finestre complete l'attributo desiderato è:

[System.ComponentModel.Category("Personalizzato")]

e per la descrizione puoi usare [System.ComponentModel.Description("Questa è la descrizione")]

per usarli entrambi insieme

[System.ComponentModel.Category("Personalizzato"),System.ComponentModel.Description("Questa è la descrizione")]

Tuttavia questo fa parte di system.dll che potrebbe essere diverso per Windows Mobile.

L'articolo non suggerisce che qualcuno stia progettando SUL dispositivo.Tuttavia, quando crei un progetto Compact Framework, il framework compatto (per il tuo PC desktop) viene utilizzato per gestire il rendering in fase di progettazione.Se ci pensi è quello che ti aspetti.Lo stesso framework (o quasi) viene utilizzato per eseguire il rendering sia sul PC in fase di progettazione che successivamente sul dispositivo in fase di runtime.Il problema è che gli attributi della fase di progettazione non sono stati aggiunti al framework compatto (presumo per ridurne le dimensioni).

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