Каков рекомендуемый способ скрыть все приложение в WPF?
Я хочу, чтобы мое приложение WPF было скином, применяя определенный шаблон XAML, а изменения, которые должны быть широко распространены, даже для динамических элементов управления или элементов управления, которые даже не отображаются в визуальном/логическом дереве.
Что я могу использовать для выполнения этого типа функций? Есть ли хорошие ресурсы или учебные пособия, которые показывают, как эта конкретная задача может быть выполнена?
Ответы
Ответ 1
Основной подход к использованию - использование ресурсов через ваше приложение и динамическая замена ресурсов во время выполнения.
См. http://www.nablasoft.com/alkampfer/index.php/2008/05/22/simple-skinnable-and-theme-management-in-wpf-user-interface/ для базового подхода
Ответ 2
Замена ресурса будет работать, но я обнаружил, что "структурная скининг" будет более мощной! Подробнее об этом читайте в CodeProject...
http://www.codeproject.com/KB/WPF/podder1.aspx
Ответ 3
Я нашел способ применить общие шаблоны ко всем элементам управления, не используя шаблонные ключи. Решение состоит в том, чтобы использовать тип элемента управления как клавишу Style.
Пример:
<Application.Resources>
<Style x:Key="{x:Type Button}" TargetType="{x:Type Button}">
<Setter Property="Button.Background" Value="CornflowerBlue"/>
<Setter Property="Button.Template">
<Setter.Value>
<ControlTemplate x:Name="MyTemplate">
...
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Application.Resources>
здесь клавиша Style - это x: Key = "{x: Type Button}", поэтому стиль будет применяться ко всем элементам управления кнопки типа без элемента управления, объявляющего свойство Style как статический или динамический ресурс.