获取事件中的按钮内容

Meu*_*peu 1 c# xaml

我有代码XAML

<Button Grid.Column="0" Grid.Row="1" x:Name="btnSete" Click="btn_Click">
    <ContentControl.Content>
        <Viewbox Margin="3">
            <TextBlock Text="7"/>
        </Viewbox>
     </ContentControl.Content>
</Button>
Run Code Online (Sandbox Code Playgroud)

和后面的代码:

private void btn_Click(object sender, RoutedEventArgs e)
{
   Button btn = (Button)e.Source;

   txbDisplay.Text = btn.Content.ToString();
}
Run Code Online (Sandbox Code Playgroud)

我如何获得<TextBlock Text="7"/>in的值btn_Click

Tim*_*Tim 5

根据您的 XAML,btn.Content应该是Viewbox. 那么 the 的Child属性Viewbox应该是你的TextBlock.

所以你应该能够做到这一点(在你的按钮点击事件处理程序中):

var viewBox = (Viewbox)btn.Content;
var textBlock = (TextBlock)viewBox.Child;
var text = textBlock.Text; //  This is the value you were looking for

txbDisplay.Text = text;
Run Code Online (Sandbox Code Playgroud)

此外,作为一个有用的说明,<ContentControl.Content> ... </ContentControl.Content>您的 XAML 部分是多余的。该块可以写为:

<Button Grid.Column="0" Grid.Row="1" x:Name="btnSete" Click="btn_Click">
    <Viewbox Margin="3">
        <TextBlock Text="7"/>
    </Viewbox>
</Button>
Run Code Online (Sandbox Code Playgroud)

如果您不确定,请参阅此页面上的“XAML 内容属性”部分以了解更多信息。