[英]How to acces text of textblock inside a dynamic stackpanel in wp8?
[英]How to get TextBlock's Text value out of a StackPanel inside a Button in WPF
我想知道如何從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!
。 怎么做?,並預先感謝!
從我的頭開始:1.在本地存儲TextBlock的實例,並在需要時使用它。2.創建DependencyProperty並將其綁定到TextBlock。 那樣的話,您將在此DP中始終擁有最新價值。
希望能有所幫助。
最簡單的方法是
TextBlock txtBlck = new TextBlock();
txtBlck.Name = "SomeName";
txtBlck.Text = "this is a test!";
然后
private void test_click(object sender, RoutedEventArgs e)
{
txtBox.Text = SomeName.Text;
}
按鈕Content是您的堆棧面板而不是您的文本塊,然后要替換該文本塊內容,您需要:
txtBox.Text =(發送為Button).Content;
這樣
txtBox.Text = txtBlck.Text;
如果您非常想從textblock中獲取文本,則不要公開使用textblock。
public TextBlock txtBlck = new TextBlock();
public MainWindow()
{
InitializeComponent();
StackPanel stackPnl = new StackPanel();
stackPnl.Orientation = Orientation.Vertical;
stackPnl.Margin = new Thickness(10);
txtBlck.Text = "this is a test!";
stackPnl.Children.Add(txtBlck);
Button btn = new Button();
btn.Content = stackPnl;
btn.Click +=btn_Click;
myPanel.Children.Add(btn);
}
void btn_Click(object sender, RoutedEventArgs e)
{
txtBox.Text = txtBlck.Text;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.