Как определить во время выполнения, является ли стиль, применяемый к объекту, стилем по умолчанию? - PullRequest
1 голос
/ 04 декабря 2008

Я хочу иметь возможность применять стиль во время выполнения к объекту ТОЛЬКО , если текущий стиль является стилем по умолчанию. Я не хочу переопределять любые пользовательские стили. Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

3 голосов
/ 04 декабря 2008

Похоже, вы можете сделать это следующим образом:

DependencyPropertyHelper.GetValueSource(
    someControl, FrameworkElement.StyleProperty).BaseValueSource 
    == BaseValueSource.Default;

Вы можете заключить это в метод расширения следующим образом:

static public bool HasDefaultStyle(this FrameworkElement item)
{
    return DependencyPropertyHelper.GetValueSource(
        item, FrameworkElement.StyleProperty).BaseValueSource 
        == BaseValueSource.Default;
}

Тогда вы можете просто позвонить someControl.HasDefaultStyle().

Также ознакомьтесь с этой статьей: Шаблоны по умолчанию в WPF

0 голосов
/ 04 декабря 2008

Проверьте DefaultStyleKeyProperty, который является статическим свойством любого пользовательского элемента управления.

string styleKeyName = DefaultStyleKeyProperty.Name;

Обычно, если с элементом управления не связан стиль, именем будет "DefaultStyleKey"

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