我有代码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?
根据您的 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 内容属性”部分以了解更多信息。
| 归档时间: |
|
| 查看次数: |
3705 次 |
| 最近记录: |