WPF 模板

本文详细介绍了在Windows应用中使用DataTemplate和ControlTemplate的方法,包括如何创建、引用和调用模板,以及在样式内定义触发器。通过示例展示了如何在ListBox和Button控件中应用自定义模板,以及如何在模板内定义视觉树和触发器。

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

一、DataTemplate(数据模板)
1、引用命名空间
xmlns:别名="clr-namespace:命名空间"

2、调用命名空间下的类别和属性
<Window.Resources>
<!--数据列表模板-->
<DataTemplate x:Key="模板名" DataType="{x:Type 别名/命名空间:类别}">
<Label Content="{Binding 属性}"></Label>
</DataTemplate>
</Window.Resources>

3、调用数据模板
<ListBox x:Name="ListBox" ItemTemplate="{StaticResource 模板名}" />

4、CS后台实例
using System;
namespace 命名空间
{
public class 类别
{
public string 属性 { get { return "我是属性"; } }
}
}

<!--在样式内创建数据列表模板-->
<Style TargetType="ListBox" x:Key="ListBox">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<Image Source="{Binding 属性}" Width="100" Height="100"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>

二、ControlTemplate(控件模板)
1、控件内定义模板
<Button Grid.Row="0" Grid.Column="1" Content="控件内定义模板">
<Button.Template>
<ControlTemplate TargetType="Button">
<!--定义视觉树-->
<Label Content="{TemplateBinding Content}"></Label>
</ControlTemplate>
</Button.Template>
</Button>

2、在资源创建控件模板
<Window.Resources>
<ControlTemplate TargetType="Button" x:Key="ButtonTemplate">
<!--定义视觉树-->
<Label Content="{TemplateBinding Content}"></Label>
</ControlTemplate>
</Window.Resources>

调用:

<Button Content="控件调用模板" Template="{StaticResource ButtonTemplate}" />

3、在样式内创建控件模板
<Style x:Key="TextBox" BasedOn="{x:Null}" TargetType="{x:Type TextBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border x:Name="Bd"></Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>


触发器
样式内定义触发器
<Style TargetType="Button" x:Key="TriggerButtonStyle" BasedOn="{StaticResource ButtonStyle}">
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
在模板内定义触发器
<ControlTemplate TargetType="Button" x:Key="ButtonTemplate">
<!--定义视觉树-->
<Grid>
<Ellipse Name="faceEllipse" Width="{TemplateBinding Button.Width}" Height="{TemplateBinding Control.Height}" Fill="{TemplateBinding Button.Background}"/>
<TextBlock Name="txtBlock" Margin="{TemplateBinding Button.Padding}" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{TemplateBinding Button.Content}" />
</Grid>
<!--定义视觉树_end-->
<!--定义触发器-->
<ControlTemplate.Triggers>
<Trigger Property="Button.IsMouseOver" Value="True">
<Setter Property="Button.Foreground" Value="Red" />
</Trigger>
</ControlTemplate.Triggers>
<!--定义触发器_End-->
</ControlTemplate>

mscorlib应用
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:项目命名空间"

<sys:String x:Key="OK">
确定
</sys:String>

<sys:ArrayList x:Key="ds">
<local:Unit Year="2011年" Price="100"/>
<local:Unit Year="2010年" Price="120"/>
<local:Unit Year="2012年" Price="140"/>
<local:Unit Year="2013年" Price="160"/>
<local:Unit Year="2014年" Price="180"/>
</sys:ArrayList>
其中Unit的代码为:
public class Unit
{
public int Price { get; set; }
public string Year { get; set; }
}

转载于:https://www.cnblogs.com/sntetwt/p/5406597.html

内容概要:本文深入探讨了金属氢化物(MH)储氢系统在燃料电池汽车中的应用,通过建立吸收/释放氢气的动态模型和热交换模型,结合实验测试分析了不同反应条件下的性能表现。研究表明,低温环境有利于氢气吸收,高温则促进氢气释放;提高氢气流速和降低储氢材料体积分数能提升系统效率。论文还详细介绍了换热系统结构、动态性能数学模型、吸放氢特性仿真分析、热交换系统优化设计、系统控制策略优化以及工程验证与误差分析。此外,通过三维动态建模、换热结构对比分析、系统级性能优化等手段,进一步验证了金属氢化物储氢系统的关键性能特征,并提出了具体的优化设计方案。 适用人群:从事氢能技术研发的科研人员、工程师及相关领域的研究生。 使用场景及目标:①为储氢罐热管理设计提供理论依据;②推动车载储氢技术的发展;③为金属氢化物储氢系统的工程应用提供量化依据;④优化储氢系统的操作参数和结构设计。 其他说明:该研究不仅通过建模仿真全面验证了论文实验结论,还提出了具体的操作参数优化建议,如吸氢阶段维持25-30°C,氢气流速0.012g/s;放氢阶段快速升温至70-75°C,水速18-20g/min。同时,文章还强调了安全考虑,如最高工作压力限制在5bar以下,温度传感器冗余设计等。未来的研究方向包括多尺度建模、新型换热结构和智能控制等方面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值