通过xaml.cs代码在xaml中创建文本框

时间:2016-12-06 01:05:32

标签: c# wpf visual-studio xaml

我想在循环(可能)中单击.xaml.cs文件的按钮时在xaml文件中创建文本框。我已计算出每个文本框的边距,但不知道如何绑定代码。 Here's the image of the xaml design view and what I'm trying to achieve. The window will have one textbox for choices appear and the loop will create another and another each time the add choice button is clicked.

有人可以帮忙吗?我刚刚学习wpf。谢谢

2 个答案:

答案 0 :(得分:0)

假设绑定代码意味着如何将ns添加到面板中。为此,您需要将文本框添加到面板的TextBox属性中。

如果您需要在初始化表单时执行此操作,请将代码放在Children之后的表单构造函数中。

以下是一个示例,如何以编程方式执行此操作,以响应点击事件:

的Xaml:

InitializeComponent();

C#:

<StackPanel Name="pn_Content" Orientation="Vertical">
    <Button Click="btn_Add_TextBox_Click">Add Textbox</Button>
</StackPanel>

那就是它。

答案 1 :(得分:0)

首先,将所有当前文本框放在容器中,例如名为stackPanel的堆栈面板。 然后将控件添加到面板的子项中:

require 'openssl'
require 'base64'

module AESCrypt

  def self.encrypt(message, password)
    Base64.encode64(self.encrypt_data(message.to_s.strip,         
    self.key_digest(password), nil, "AES-256-CBC"))
  end

  def self.decrypt(message, password)
    base64_decoded = Base64.decode64(message.to_s.strip)
    self.decrypt_data(base64_decoded, self.key_digest(password), nil, "AES-256-CBC")
  end

  def self.key_digest(password)
    OpenSSL::Digest::SHA256.new(password).digest
  end


  def self.decrypt_data(encrypted_data, key, iv, cipher_type)
    aes = OpenSSL::Cipher::Cipher.new(cipher_type)
    aes.decrypt
    aes.key = key
    aes.iv = "0000000000000000"
    aes.update(encrypted_data) + aes.final  
  end

  def self.encrypt_data(data, key, iv, cipher_type)
    aes = OpenSSL::Cipher::Cipher.new(cipher_type)
    aes.encrypt
    aes.key = key
    aes.iv = "0000000000000000"
    aes.update(data) + aes.final      
  end
end

请参考以下问题:

WPF: How to dynamically Add Controls in dynamically created WPF Window

Adding child controls in Stackpanel WPF C#