在上一篇文章中提到过,凡是用XAML实现的,都可以用传统的编程实现。所以使用Visual Studio创建一个console application, 添加引用程序集Assembly, PresentationCore, PresentationFramework和WindowsBase.
C#实现代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
namespace LearnXAMLAndCLR
{
class Program:Window
{
[STAThread]
public static void Main(string[] args)
{
Application app = new Application();
app.Run(new Program());
}
public Program()
{
Height = 200;
Width = 500;
Grid grid = new Grid();
grid.Background = Brushes.AliceBlue;
Content = grid;
//定义三行两列
ColumnDefinition columndef = new ColumnDefinition();
columndef.Width = new GridLength(100);
grid.ColumnDefinitions.Add(columndef);
for(int i=0;i<=1;i++)
{
grid.ColumnDefinitions.Add(new ColumnDefinition());
}
for(int j=0;j<=2;j++)
{
grid.RowDefinitions.Add(new RowDefinition());
}
//定义一个textblock
TextBlock textblock1 = new TextBlock(new Run("book name:"));
textblock1.HorizontalAlignment = HorizontalAlignment.Right;
grid.Children.Add(textblock1);
Grid.SetColumn(textblock1, 0);
Grid.SetRow(textblock1, 0);
textblock1 = new TextBlock(new Run("Learn WPF"));
grid.Children.Add(textblock1);
Grid.SetColumn(textblock1, 1);
Grid.SetRow(textblock1, 0);
//定义一个textblock
TextBlock textblock2 = new TextBlock(new Run("use:"));
textblock2.HorizontalAlignment = HorizontalAlignment.Right;
grid.Children.Add(textblock2);
Grid.SetColumn(textblock2, 0);
Grid.SetRow(textblock2, 1);
textblock2 = new TextBlock(new Run(".Net Framework 4.5"));
grid.Children.Add(textblock2);
Grid.SetColumn(textblock2, 1);
Grid.SetRow(textblock2, 1);
//定义一个textblock
TextBlock textblock3 = new TextBlock(new Run("Content:"));
textblock3.HorizontalAlignment = HorizontalAlignment.Right;
grid.Children.Add(textblock3);
Grid.SetColumn(textblock3, 0);
Grid.SetRow(textblock3, 2);
textblock3 = new TextBlock(new Run("Niubility WPF Skills! "));
grid.Children.Add(textblock3);
Grid.SetColumn(textblock3, 1);
Grid.SetRow(textblock3, 2);
}
}
}