2009-09-10 8 views
3

Je veux saisir le style par défaut pour un TextBlock dans le code derrière sans jamais avoir l'ajout d'un style textblock par défaut personnalisé aux ressources en XAMLObtenez le style d'un contrôle {StaticResource {x: Type TextBlock}} dans le code derrière

J'ai une méthode comme ceci:

public TextBlock DrawTextBlockAtPoint(string text, Style textblockStyle) 
{ 
//... 
} 

que je veux fournir un remplacement qui utilise juste le style TextBlock régulier

public TextBlock DrawTextBlockAtPoint(string text) 
{ 
    Style textblockdefaultstyle = *GetDefaultStyleForProperty(TextBlock.StyleProperty); 
    DrawTextBlockAtPoint(text, textblockdefaultstyle) 
} 

y at-il de toute façon de le faire?

Répondre

7

L'extension de balisage StaticResource essaie essentiellement de trouver une ressource pour la clé définit. Si le style par défaut pour le type de TextBlock peut être récupéré à l'aide: {StaticResource {x:Type TextBlock}} vous devriez être en mesure d'obtenir dans le code en utilisant:

var defaultTextBlockStyle = FindResource(typeof(TextBlock)); 

Bien sûr, cela doit être appelé dans un contexte dans lequel les méthodes FindResource est défini . Je l'ai utilisé dans ma classe principale de Windows et ça marche.

Espérons que cela aide.

Questions connexes