WPF模板

本文介绍了WPF中的模板机制,包括DataTemplate用于定制数据的外观,ControlTemplate用于定义控件结构,以及ItemsPanelTemplate用于布局控制。详细讲解了在ContentControl、ItemsControl和GridViewColumn中的应用,并提供了使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        模板允许定制一个元素的可视化树,而不影响他的功能。可视化树区别于逻辑树,逻辑树是控件元素之间的树状关系,而可视化树聚焦于一个元素的内部。模板的类型包括DataTemplate、ControlTemplate和ItemsPanelTemplate。

        以ContentControl为例,它的ContentTemplate属性是DataTemplate类型,决定数据长成什么样子(数据显示结构);它的Template属性是ControlTemplate类型,决定控件本身长成什么样子(控件内部结构)。DataTemplate实例化后的一组控件,其树根是ContentPresenter控件,而ControlTemplate实例化为目标控件本身。进一步,ContentPresenter控件是ControlTemplate控件树上的一个结点,后续在编写ControlTemplate时,尤其要注意这一点,不要把内容控件部分遗漏。

一、DataTemplate用法

        DataTemplate允许定制.NET对象的外观,也就是数据的外观,常用在以下3处:ContentControl的ContentTemplate属性,用于定制ContentControl内容的外观;ItemsControl的ItemTempldate属性,用于定制ItmsControl数据条目的外观;GridViewColumn的CellTemplate属性,相当于定制GridViewColumn单元格数据的外观。

1、ContentTemplate使用

        ContentControl中包含ContentTemplate属性和Content属性,Content属性是ContentControl的内容,而ContentTempldate属性是用于显示内容的模板实例。

<Window x:Class="tt.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:tt"
        mc:Ignorable="d"
        Title="MainWindow" Height="150" Width="360">
    <Window.Resources>
        <DataTemplate x:Key="template1">
            <TextBlock Text="{Binding}" FontSize="12" FontWeight="Bold" TextWrapping="Wrap"></TextBlock>
        </DataTemplate>
    </Window.Resources>
    <Grid>
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值