【发布时间】:2015-09-08 04:43:18
【问题描述】:
我想知道如何从 WPF 中按钮内的 StackPanel 内的 TextBlock 中获取文本值,它非常像这样:
public MainWindow()
{
Image img = new Image();
img.Source = new BitmapImage(new Uri("image.png"));
StackPanel stackPnl = new StackPanel();
stackPnl.Orientation = Orientation.Vertical;
stackPnl.Margin = new Thickness(10);
stackPnl.Children.Add(img);
TextBlock txtBlck = new TextBlock();
txtBlck.Text = "this is a test!";
stackPnl.Children.Add(txtBlck);
Button btn = new Button();
btn.Content = stackPnl;
btn.Click += test_click;
myPanel.Children.Add(btn);
}
还有 test_click:
private void test_click(object sender, RoutedEventArgs e)
{
txtBox.Text = (sender as Button).Content.ToString();
}
现在我点击按钮后得到的当然是System.Windows.Controls.StackPanel,我想这很明显,因为 StackPanel 是按钮的实际内容,但就像我说的,我需要知道如何获取只有 TextBlock 的 Text 值,所以在这种情况下 txtBox 应该显示 this is a test!。如何做到这一点?提前感谢!
【问题讨论】:
-
也许我没有尽我所能解释自己,我不需要只是从随机 TextBlock 中获取文本,我知道这很容易,我需要 TextBlock 中的文本在按钮的 StackPanel 中,想法是通过编程方式创建几个按钮,包括它们的内容,所以当我调用点击事件时,我会得到分配给该特定按钮的任何内容。
-
按钮是用内部的 StackPanel 创建的,所以它们可以有图像,所以它看起来有点像一个图标,但包含常规按钮的所有事件。