Jak uzyskać istniejący szablon sterowania w WPF w formacie XAML (drzewo wizualne)? Ma to pomóc w stworzeniu nowego szablonu kontrolnego za pomocą istniejącego szablonu.Szablon sterowania dla istniejących elementów sterujących w WPF
Odpowiedz
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
.
Można użyć narzędzia jak ShowMeTheTemplate
Czy istnieje kod, aby dostać go w formacie XAML? (Jak wyświetlić drzewo wizualny w formacie drzewa) –
tak, ponieważ narzędzie to prawda ... można spojrzeć na kod, to przewidziane w zip plik –
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.
Łącza tam nie działają. –
@ doron-yaacoby, znalazłem inny link do pobrania z: http://blog.tomaskafka.com/book/export/html/112 –
@NicolaiShestakov, dziękuję, zaktualizowałem link w odpowiedzi. –
Jeśli masz Expression Blend można:
- Przeciągnij kontrola na powierzchni projektowej
- 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.
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.
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
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);
}
Argh matey! Twój link zostanie zatopiony w szafce Davey Jones! – Danielson
@Danielson zaktualizował link –