2016-02-12 1 views
1

un TextBlock est à l'intérieur d'un Button comme content. Je veux la propriété Text du TextBlock. S'il vous plaît veuillez me conseiller comment je peux résoudre ceci.Comment faire pour obtenir le texte de TextBlock (TextBlock est le contenu du bouton)

Ci-dessous le code de retour ne ct que System.Windows.Controls.TextBlock

string ct = (sender as Button).Content.ToString(); 

Bien sûr, le Content de Button est vraiment un TextBlockSystem.Windows.Controls.TextBlock
Je trouve affaire très semblable à stackoverflow, mais les gens ne fourni une mauvaise réponse.

+2

avez-vous essayé 'chaîne ct = ((expéditeur Button) .Contenu comme TextBlock) .Conte nt; '? – ericosg

+1

@ericosg, Vous êtes la première personne à répondre correctement. Je remercie cordialement les 3 personnes qui m'ont fourni une excellente réponse. Je regrette que vous avez seulement écrit comme commentaire pas comme réponse. Merci beaucoup! –

Répondre

2

Depuis la Content du Button est TextBlock vous devriez considérer (sender as Button).Content comme TextBlock puis utilisez la propriété Text comme ceci:

string ct = ((sender as Button).Content as TextBlock).Text; 
+1

Un grand merci pour votre excellent, gentillesse. Toutes les 3 personnes ont apporté une bonne réponse à moi .. Bonne journée! –

2

Il y a peu de façons de résoudre votre problème. Le premier est tout simplement jeté le contenu Button et obtenir le texte:

var button = (sender as Button); 
if(button == null) 
{ 
    // handle this scenario 
} 

var textBlockContent = button.Content as TextBlock; 
if(textBlockContent == null) 
{ 
    // handle this scenario 
} 

var ct = textBlockContent.Text; 

Le second vous pouvez trouver votre TextBlockby name ou tout simplement référence si vous avez gestionnaire d'événements dans le même contrôle:

var textblock = (TextBlock)this.FindName("YourTextBlockName"); 
if(textblock == null) 
{ 
    // handle this scenario 
} 

var ct = textblock.Text; 

également vous pouvez essayer de changer votre code XAML pour stocker tout un texte dans votre bouton:

<Button Content="YourText" Backround="..." Foreground="..." Style="..." /> 
+0

Un grand merci pour votre excellent, gentillesse. Toutes les 3 personnes ont apporté une bonne réponse à moi .. Bonne journée! –