2012-08-24 67 views
0

我試圖在WPF中動態創建文本框。這是非常重要的,我將有靈活性來確定文本框的位置 - 在像素級別。 我發現很多使用堆棧面板來創建「運行時」文本框的答案 - 但找不到如何根據指定的位置構建它。根據位置在wpf中創建動態文本框

文本框必須是「自動換行」,我用一個按鈕單擊事件創建文本框

這是現在的代碼,我真不知道哪些方法或屬性會很有幫助。 謝謝:)

private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      TextBox x = new TextBox(); 
      x.Name = "new_textbox"; 
      x.TextWrapping= TextWrapping.Wrap; 
      x.VerticalScrollBarVisibility=ScrollBarVisibility.Visible; 
      x.AcceptsReturn = true; 
      x.Margin = new Thickness(5, 10, 0, 0); 
    } 

回答

1

你可能想將其放置在畫布,如果你關心的文本框本身的像素位置。您需要使用x.SetValue(Canvas.LeftProperty,pixelX)[和.RightProperty等...]才能獲得完全正確的位置。自己沒有這樣做,我猜想你需要把畫布放在正確的Z順序(頂部),並使其透明。根據z順序,事件也可能有問題。祝你好運!

-Kev

3
TextBox x = new TextBox(); 
x.Name = "new_textbox"; 
x.TextWrapping= TextWrapping.Wrap; 
x.VerticalScrollBarVisibility=ScrollBarVisibility.Visible; 
x.AcceptsReturn = true; 
x.Margin = new Thickness(5, 10, 0, 0); 
HouseCanvas.Children.Add(x); 
Canvas.SetLeft(x, 20); 
Canvas.SetTop(x, 20);