2011-11-13 26 views
9

Czy jest jakaś różnica (albo zaletą) do stosowania to stwierdzenie:x: Key & TargetType w stylach

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

z pominięciem atrybutu x:Key?

Myślę, że WPF przypisuje klucz do tego samego x:Type pod maską.

Odpowiedz

24

dokumentacji MSDN dla Style.TargetType potwierdza podejrzenia:

ustawienie właściwości TargetType do rodzaju TextBlock bez ustawienie x: Key domyślnie ustawia x: Key do {x: Type TextBlock}. Oznacza to również, że jeśli nadamy powyższy styl wartości x: klucz jakiejkolwiek innej niż {x: wpisz TextBlock}, styl nie zostanie zastosowany automatycznie do wszystkich elementów TextBlock. Zamiast tego należy wyraźnie zastosować styl do elementów TextBlock.

Jeśli klucz słownika zasobów stylu jest typem, ten styl jest używany jako domyślny styl dla wszystkich wystąpień tego typu, które nie określają jawnie stylu. Ponieważ typ docelowy jest zwykle dostarczany, składnia pominięcia klucza jest po prostu skrótem do definiowania domyślnego stylu.

+0

ok, właśnie widziałem to w kilku dobrych przykładach i to pomogło, dzięki Rick – Manuel

+8

@ Manuel: Jeśli ta odpowiedź ci pomogła, dlaczego nie zaakceptujesz tego **! –

+0

SO wymaga akceptacji. – C4u