您的位置:首页 > 其它

WPF_布局练习_动态添加按钮_计算器_2013-04-30

2013-04-30 16:01 337 查看


向杨中科老师致敬!

XAML:

//==============================================================

<Window x:Class="布局练习.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="322.369" Width="227.485" Loaded="Window_Loaded_1">
<Grid >
<Grid Name="Calculator"/>

</Grid>
</Window>

//===============================================================

CS:

//===============================================================

private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
//1. 动态添加7行
for (int i = 0; i < 7; i++)
{
Calculator.RowDefinitions.Add(new RowDefinition());
}
//2. 动态添加5列
for (int j = 0; j < 5; j++)
{
Calculator.ColumnDefinitions.Add(new ColumnDefinition());
}

//3. 动态添加数字文本框
TextBox txt = new TextBox();
txt.Name = "txtShow";
txt.Text = "0";
txt.FontSize = 35;
txt.TextAlignment = TextAlignment.Right;

Grid.SetRow(txt, 0);
Grid.SetColumn(txt,0);
Grid.SetColumnSpan(txt,5);
Calculator.Children.Add(txt);

//4. 动态添加按钮
for (int i = 1; i < 7; i++)
{

for (int j = 0; j < 5; j++)
{

if ( (i != 6 || j != 1) && (i!=6 || j!= 4))
{

Button btn = new Button();

string sName = i + "," + j;

switch (sName)
{
case "1,0":
btn.Content = "MC";
break;
case "1,1":
btn.Content = "MR";
break;
case "1,2":
btn.Content = "MS";
break;
case "1,3":
btn.Content = "M+";
break;
case "1,4":
btn.Content = "M-";
break;
case "2,0":
btn.Content = "<--";
break;
case "2,1":
btn.Content = "CE";
break;
case "2,2":
btn.Content = "C";
break;
case "2,3":
btn.Content = "土";
break;
case "2,4":
btn.Content = "V";
break;
case "3,0":
btn.Content = "7";
break;
case "3,1":
btn.Content = "8";
break;
case "3,2":
btn.Content = "9";
break;
case "3,3":
btn.Content = "/";
break;
case "3,4":
btn.Content = "%";
break;
case "4,0":
btn.Content = "4";
break;
case "4,1":
btn.Content = "5";
break;
case "4,2":
btn.Content = "6";
break;
case "4,3":
btn.Content = "*";
break;
case "4,4":
btn.Content = "1/x";
break;
case "5,0":
btn.Content = "1";
break;
case "5,1":
btn.Content = "2";
break;
case "5,2":
btn.Content = "3";
break;
case "5,3":
btn.Content = "-";
break;
case "5,4":
btn.Content = "=";
break;
case "6,0":
btn.Content = "0";
break;
case "6,2":
btn.Content = ".";
break;
case "6,3":
btn.Content = "+";
break;
}

Grid.SetRow(btn, i);
Grid.SetColumn(btn, j);

switch (btn.Content.ToString())
{
case "0":
Grid.SetColumnSpan(btn, 2);
break;
case "=":
Grid.SetRowSpan(btn, 2);
break;
}

Calculator.Children.Add(btn);
}

}
}

}

//===============================================================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: