Изменить стиль от родителя - PullRequest
2 голосов
/ 14 июля 2011

У меня есть собственный класс, производный от userControl, он описывает, какие функции должно иметь «окно службы». Следует также описать, как должен выглядеть экземпляр этого «окна службы». У меня есть стиль под названием serviceStyle. теперь всякий раз, когда я создаю новый экземпляр окна службы, мне нужно вручную устанавливать стиль в XAML экземпляра, когда это возможно, я хочу избежать необходимости делать это, в основном принудительно применяя стиль ко всем дочерним окнам службы к serviceStyle. Затем я хочу быть в состоянии сделать анимацию исчезновения на textBlock в serviceStyle. Теперь, поскольку это стиль дочернего элемента «окна службы», он кажется недоступным ...

Тем временем я нашел способ установить стиль как стиль по умолчанию для всех служебных окон, это можно сделать, добавив следующую строку в конструктор: DefaultStyleKeyProperty.OverrideMetadata (typeof (NetcarityService), новый FrameworkPropertyMetadata (typeof (NetcarityService)));

Теперь мне нужно иметь возможность получить доступ от источника к элементу textBlock в xaml из ServiceWindowStyle ....

Заранее спасибо.

1 Ответ

0 голосов
/ 23 августа 2011

Вам не нужно делать это для создания стиля по умолчанию, вы просто определяете свой стиль без ключа.Например, этот стиль применяется ко всем кнопкам в приложении (если стиль определен в app.xaml)

        <Style TargetType="{x:Type Button}">
            <Style.Setters>
                <Setter Property="Margin" Value="6"></Setter>
                <Setter Property="Padding" Value="6,3,6,3"></Setter>
            </Style.Setters>
        </Style>

Что касается детей, я думаю, вам просто нужно написать код, чтобы определить, когдаchild добавляется и устанавливается стиль по умолчанию для child.Я думаю, что вы можете просто переопределить OnVisualChildrenChanged.

PS.Установка DefaultStyleKeyProperty должна выполняться в статическом конструкторе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...