Каков рекомендуемый способ оформления всего приложения в WPF?

StackOverflow https://stackoverflow.com/questions/120914

Вопрос

Я хочу, чтобы в моем приложении WPF можно было изменять скины путем применения определенного шаблона XAML, а изменения распространялись на все приложение, даже для динамических элементов управления или элементов управления, которых нет даже в визуальном/логическом дереве.

Что я могу использовать для выполнения такого типа функций?Есть ли какие-нибудь хорошие ресурсы или учебные пособия, показывающие, как можно выполнить эту конкретную задачу?

Это было полезно?

Решение

Основной подход заключается в использовании ресурсов во всем приложении и динамической замене ресурсов во время выполнения.

Видеть http://www.nablasoft.com/alkampfer/index.php/2008/05/22/simple-skinnable-and-theme-management-in-wpf-user-interface/ для базового подхода

Другие советы

Замена ресурса будет работать, но я обнаружил, что «структурное скиннинг» более эффективно!Подробнее об этом читайте на CodeProject...

http://www.codeproject.com/KB/WPF/podder1.aspx

Я нашел способ применить общие шаблоны ко всем элементам управления без использования ключей шаблона.Решение состоит в том, чтобы использовать тип элемента управления в качестве ключа стиля.

Пример:

 <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>

здесь ключ стиля — x:Key="{x:Type Button}", поэтому стиль будет применен ко всем элементам управления типа button без того, чтобы элемент управления объявлял свойство Style статическим или динамическим ресурсом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top