2016-11-28 78 views
0

我想寫一個自動生成的SudokuBoard,它是在代碼後面生成的。但是對於佈局,我希望將其設置到中央位置的DockPanel上。 有沒有我可以合併它的選項?結合XAML與C#

目前我的XAML沒有任何屬性。所以,我在View像這樣生成的網格:(從xaml.cs文件)

this.Content = __grid; 

第二件事,有沒有任何選擇我的文本字段設置只是一個數字一個,或者更好,我可以很容易地改變允許字符? 只需要1-9號允許

回答

0

在第二個答案是

XAML:

<TextBox Name="txtNo" TextChanged="txtNo_TextChanged_1" MaxLength="1" /> 

XAML.CS:

private void txtNo_TextChanged_1(object sender, TextChangedEventArgs e) 
{ 
    TextBox txtnum = sender as TextBox; 
    if (txtnum != null && txtnum.Text != null) 
    { 
     try 
     { 
      var num = Convert.ToInt32(txtnum.Text); 
      txtnum.Text = num.ToString(); 
     } 
     catch (Exception ex) 
     { 
      txtnum.Text = string.Empty; 
      e.Handled = true; 
     } 
    } 
} 

相同事件,請將txtnum.Text值傳遞到正則表達式方法中。寫自己的正則表達式方法。

+0

我可以寫在我的循環中的每個文本框在C#?像「textbox.TextChanged =」txtNo_TextChanged_1「;'?或者這是不可能的?到目前爲止,沒有選擇在xaml中執行此操作 – NoIdea123

0

爲了我的第二個,我這樣做是這樣的:在 xaml.cs

__txtBoxes[__col][__row].TextChanged += new TextChangedEventHandler(InputChanged); 

在後面的代碼:

protected void InputChanged(object sender, EventArgs e) 
{ 
    TextBox tb = new TextBox(); 
    tb = sender as TextBox; 
    if (tb != null && tb.Text != null) 
    { 
     try 
     { 
      var num = Convert.ToInt32(tb.Text); 
      tb.Text = num.ToString(); 
     } 
     catch (Exception ex) 
     { 
      tb.Text = String.Empty; 
     } 
    } 
} 

還是鴕鳥政策知道如何設置這個在DockPanel中