我想寫一個自動生成的SudokuBoard,它是在代碼後面生成的。但是對於佈局,我希望將其設置到中央位置的DockPanel上。 有沒有我可以合併它的選項?結合XAML與C#
目前我的XAML
沒有任何屬性。所以,我在View像這樣生成的網格:(從xaml.cs文件)
this.Content = __grid;
第二件事,有沒有任何選擇我的文本字段設置只是一個數字一個,或者更好,我可以很容易地改變允許字符? 只需要1-9號允許
我想寫一個自動生成的SudokuBoard,它是在代碼後面生成的。但是對於佈局,我希望將其設置到中央位置的DockPanel上。 有沒有我可以合併它的選項?結合XAML與C#
目前我的XAML
沒有任何屬性。所以,我在View像這樣生成的網格:(從xaml.cs文件)
this.Content = __grid;
第二件事,有沒有任何選擇我的文本字段設置只是一個數字一個,或者更好,我可以很容易地改變允許字符? 只需要1-9號允許
在第二個答案是
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值傳遞到正則表達式方法中。寫自己的正則表達式方法。
爲了我的第二個,我這樣做是這樣的:在 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中
我可以寫在我的循環中的每個文本框在C#?像「textbox.TextChanged =」txtNo_TextChanged_1「;'?或者這是不可能的?到目前爲止,沒有選擇在xaml中執行此操作 – NoIdea123