Как получить текст TextBlock (TextBlock - содержимое кнопки)
TextBlock
находится внутри Button
как content
,
Я хочу Text
собственность TextBlock
, Пожалуйста, дайте совет, как я могу решить это.
Ниже код только возврат ct
как System.Windows.Controls.TextBlock
string ct = (sender as Button).Content.ToString();
Конечно, Content
из Button
действительно TextBlock
System.Windows.Controls.TextBlock
Я нашел очень похожий случай в stackru, но люди предоставили только неправильный ответ.
2 ответа
Так как Content
из Button
является TextBlock
вы должны рассмотреть (sender as Button).Content
как TextBlock
затем используйте Text
свойство как это:
string ct = ((sender as Button).Content as TextBlock).Text;
Есть несколько способов решить вашу проблему. Первый только что брошен Button
содержание и получить текст:
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;
Второй вы можете найти свой TextBlock
по имени или просто укажите его, если у вас есть обработчик событий в том же элементе управления:
var textblock = (TextBlock)this.FindName("YourTextBlockName");
if(textblock == null)
{
// handle this scenario
}
var ct = textblock.Text;
Также вы можете попробовать изменить свой XAML-код, чтобы сохранить только текст в вашей кнопке:
<Button Content="YourText" Backround="..." Foreground="..." Style="..." />