2008-12-03 6 views

Répondre

3

Il semble que vous pouvez le faire de cette façon:

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

Vous pouvez envelopper que jusqu'à dans une méthode d'extension comme ceci:

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

Ensuite, vous pouvez simplement appeler someControl.HasDefaultStyle().

En outre, un coup d'oeil à cet article: Default Templates in WPF

+0

points bonus pour l'idée de la méthode d'extension !! – Micah

-1

Cochez DefaultStyleKeyProperty, qui est une propriété statique de tout contrôle personnalisé.

string styleKeyName = DefaultStyleKeyProperty.Name; 

Habituellement, s'il n'y a pas de style associé au contrôle, le nom sera « DefaultStyleKey »

Questions connexes