WPF入门02之从XAML入手2

8 篇文章 1 订阅
  • xaml元素进阶
    1.在.cs后端代码中写xaml对象

一个标签的声明就是一个类对象,按照道理可以通过代码来创建类实现元素的创建,也就是通过后台CS代码创建界面元素。
下面创建一个空的项目,然后添加两个类,分别命名为MyWindow.cs和Program.cs,前者用来创建一个包含按钮的窗体,后者用来启动这个窗体

MyWindow.cs
public class MyWindow:Window
    {
        private Button btn;

        public MyWindow()
        {
            InitializeComponent();
        }

        private void InitializeComponent()
        {
            //设置窗体大小
            this.Width = 800;
            this.Height = 450;

            this.Left = this.Top = 100;
            this.Title = "MyWindow";

            //创建一个容器,用来接收button
            DockPanel dock_panel1 = new DockPanel();

            //创建一个容器,用来接收Button
            btn = new Button();
            btn.Content = "click me.";
            btn.Margin = new Thickness(30);

            //为按钮绑定事件
            btn.Click += Btn_Click;

            //
            IAddChild container = dock_panel1;
            container.AddChild(btn);
            container = this;
            container.AddChild(dock_panel1);
        }

        private void Btn_Click(object sender, RoutedEventArgs e)
        {
            this.btn.Content = "Thanks!";
        }
    }
Program.cs
public class Program:Application
    {
        [STAThread()]//单线程单元不可少
        static void Main() //整个程序的入口
        {
            Program app = new Program();
            app.MainWindow = new MyWindow();
            app.MainWindow.ShowDialog();
        }
    }

在这里插入图片描述
F5运行如下:
在这里插入图片描述
2.还可以动态的将XAML信息交给程序处理,动态生成相应的控件,将后端代码修改为

    public class MyWindow:Window
    {
        public MyWindow()
        {
            InitializeComponent();
        }

        private void InitializeComponent()
        {
            //创建XAML
            String xaml = " <StackPanel xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" Width=\"200\" Height=\"200\" Background=\"Blue\" > <Button Content=\"Dynamic Button One\" Background=\"Yellow\"/> <Button Content=\"Dynamic Button Two\" Background=\"Yellow\"/> <Button Content=\"Dynamic Button Three\" Background=\"Yellow\"/> <TextBox Text=\"Dynamic TextBox\" Background=\"LightGreen\"/> </StackPanel>";

            //指定XAML
            this.Content = XamlReader.Parse(xaml);
        }
    }

F5运行:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏克贝塔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值