2009-10-13 4 views

Odpowiedz

30

Style wraz z przykładami szablonów są do pobrania w wersji on MSDN, patrz Default WPF Themes link.

Można jednak rozszerzyć istniejący styl bez ponownego definiowania wszystkiego za pomocą atrybutu BasedOn.

+1

Argh matey! Twój link zostanie zatopiony w szafce Davey Jones! – Danielson

+0

@Danielson zaktualizował link –

1

Można użyć narzędzia jak ShowMeTheTemplate

+0

Czy istnieje kod, aby dostać go w formacie XAML? (Jak wyświetlić drzewo wizualny w formacie drzewa) –

+0

tak, ponieważ narzędzie to prawda ... można spojrzeć na kod, to przewidziane w zip plik –

34

Odjazd StyleSnooper:

http://www.blogs.intuidev.com/image.axd?picture=2010/5/StyleSnooper_TN.png

To będzie zrzucić standardowe style (a więc też szablony) dla wbudowanego w grupie kontrolnej. Można również załadować określoną bibliotekę DLL, która zawiera formanty WPF i wyświetlić domyślne style dla nich.

+6

Łącza tam nie działają. –

+0

@ doron-yaacoby, znalazłem inny link do pobrania z: http://blog.tomaskafka.com/book/export/html/112 –

+0

@NicolaiShestakov, dziękuję, zaktualizowałem link w odpowiedzi. –

14

Jeśli masz Expression Blend można:

  1. Przeciągnij kontrola na powierzchni projektowej
  2. Kliknij prawym przyciskiem sterowania i wybierz Edycja szablonu -> Edycja Kopiuj

Po wykonaniu tej czynności, Mieszanka wyodrębni szablon podstawowy z formantu i jawnie zadeklaruje go w dokumencie/aplikacji jako zasób, który następnie można edytować według własnych upodobań. Możesz to zrobić dla dowolnej kontroli.

3

Książka "Pro WPF in C# 2008" autorstwa Matthew MacDonalda zawiera przeglądarkę Control Template w rozdziale 15. Moim zdaniem wystarczy pobrać przykładowy kod ze strony internetowej Apress.

1

Wykorzystanie Microsoft Blend dla niego: Wklej cały kod XAML w pliku w tym narzędziu i kliknij prawym przyciskiem sterowania, którego wizualny drzewo chcesz dostrzec:

Wybierz opcję: Edytuj szablon i gotowe

0

Klasa XamlWriter zapewnia tę funkcjonalność. Jeśli controlName jest nazwą kontrolki , a następnie za pomocą poniższego fragmentu otrzymasz Xaml szablonu Kontroli wewnątrz obiektu stringBuilder. Sądzę, że narzędzia wymienione w odpowiedziach wykorzystują tę klasę.

var stringBuilder = new StringBuilder(); 
var xmlSettings = new XmlWriterSettings 
{ 
    Indent = true 
}; 

using (var xmlWriter = XmlWriter.Create(stringBuilder, xmlSettings)) 
{ 
    XamlWriter.Save(controlName.Template, xmlWriter); 
}