c # windows phone 8.1 получить содержимое кнопки в виде строки

#c# #xaml #button #windows-phone-8.1

#c# #xaml #кнопка #windows-phone-8.1

Вопрос:

Я новичок в разработке на c # и wp.

При «удержании» я хочу, чтобы значение содержимого кнопки было в виде строки в моем коде c #.

 <Grid>
    <Pivot>
        <PivotItem>
            <Grid>
                <Button x:Name="Venue1" Content="Venue1" HorizontalAlignment="Left" Margin="30,0,0,0"VerticalAlignment="Top" Width="342" Height="102" Grid.Row="1" Holding="Holding"/>
            </Grid>
        </PivotItem>
    </Pivot>
</Grid>
  

Я думал, что это довольно просто, и сделал это, но не работает.
TextToSpeech — это метод, который принимает строку и считывает ее. Он считывает «Windows.UI.Xaml.Controls.Grid» … почему?

 private async void Holding(object sender, HoldingRoutedEventArgs) 
{
    await TextToSpeech(this.Content.ToString());
}
  

Ответ №1:

Попробуйте это :-

 private async void Holding(object sender, HoldingRoutedEventArgs) 
{
    var obj = sender as Button;
    var content = obj.Content;
    await TextToSpeech(content);
}
  

Что вы делаете неправильно, так это используете это. Здесь это относится не к кнопке, а к самой странице. Вместо этого вы должны использовать соответствующий объект button, который я уже показал, как использовать.
Для получения дополнительной информации смотрите Это ключевое слово

вы также можете использовать название кнопки, чтобы получить ее содержимое, которое немного жестко запрограммировано.

Комментарии:

1. спасибо всем за быстрые ответы 🙂 также потребовалось toString () содержимое в конце, но сработало в кратчайшие сроки. Спасибо!!

Ответ №2:

Это довольно просто 🙂

 await TextToSpeech(this.Venue1.Content.ToString());
  

Комментарии:

1. это тоже работает, но я предпочитаю версию mr.loop, чтобы я мог использовать этот же метод для других моих кнопок. в любом случае спасибо!

2. @koko уверен — оба метода работают, поэтому подойдет тот, который вы предпочитаете. 🙂