WPF:理解ContentControl——动态添加控件和查找控件

本文探讨了WPF中ContentControl的核心变化,它作为许多控件的基础。通过实例解析如何在WPF中动态添加控件,如在Canvas中创建并定位按钮,与Windows Forms的动态添加控件进行对比。同时介绍了WPF的布局容器,如Canvas、StackPanel和Grid,并展示了使用Canvas动态添加按钮的C#代码,强调了Children属性和Canvas的定位方法。
摘要由CSDN通过智能技术生成

我认为WPF的核心改变之一就是控件模型发生了重要的变化,大的方面说,现在窗口中的控件(大部分)都没有独立的Hwnd了。而且控件可以通过所谓的模板提供各种各样的表现形式。

这一篇就来谈一谈ContentControl,的第一部分,动态添加控件和查找控件

什么是ContentControl呢?其实WPF的绝大部分的控件,还包括窗口本身都是继承自ContentControl的。

 

有的时候,我们需要在窗口出来之后,再动态添加一些控件。例如一个最简单的场景:我们需要做一个扫雷程序,该扫雷程序根据用户选择的难易程度决定要显示多少个地雷。

为了便于理解,大家可以看下面这三个图片

image

image

image 

ok,我们还是回想一下在Windows Forms里面怎么做?

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //初级版,实例化6*6一共64个按钮
            CreateButton(6, 6);
        }



        private void button2_Click(object sender, EventArgs e)
        {
            //高级版,实例化9*9一共81个按钮
            CreateButton(9, 9);
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值