2011-11-13 18 views
9

C'è qualche differenza (o vantaggio) per utilizzare questa istruzione:x: Key & TargetType in stili

Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}" 

con omettendo l'attributo x:Key?

Penso che WPF assegni la chiave allo stesso x:Type sotto il cofano.

risposta

24

La documentazione MSDN per Style.TargetType conferma i vostri sospetti:

impostando la proprietà TargetType al tipo TextBlock senza impostare una x: Key imposta implicitamente la x: Key a {x: Tipo TextBlock}. Ciò significa anche che se si assegna allo Stile sopra un valore x: Key di qualsiasi valore diverso da {x: Type TextBlock}, lo stile non verrà applicato automaticamente a tutti gli elementi TextBlock. Invece, è necessario applicare lo stile agli elementi TextBlock in modo esplicito.

Se la chiave del dizionario delle risorse di uno stile è un tipo, tale stile viene utilizzato come stile predefinito per tutte le istanze di quel tipo che non specificano esplicitamente uno stile. Poiché il tipo di destinazione viene solitamente fornito, la sintassi di omissione della chiave è semplicemente una scorciatoia per definire uno stile predefinito.

+0

ok, l'ho visto solo in alcuni buoni esempi e questo mi ha aiutato, grazie Rick – Manuel

+8

@Manuel: Se questa risposta ti ha aiutato, perché non lo accetti ** piuttosto che **! –

+0

SO ha bisogno di un voto di accettazione. – C4u