0

0

Avalonia中的ItemsControl怎么用 Avalonia ItemsControl自定义列表

畫卷琴夢

畫卷琴夢

发布时间:2026-01-06 02:43:28

|

335人浏览过

|

来源于php中文网

原创

ItemsControl是Avalonia中轻量、无默认交互的集合显示控件,需显式设置ItemsSource、ItemTemplate和ItemsPanelTemplate才能正常显示;适用于纯展示场景,如标签栏、评分条等。

avalonia中的itemscontrol怎么用 avalonia itemscontrol自定义列表

Avalonia 中的 ItemsControl 是最基础、最灵活的集合显示控件,它不带默认交互(如选中、滚动、焦点管理),适合做纯展示型列表,比如图形容器、标签栏、自定义评分条、节点连线图等。用好它的关键是:明确数据源、配好模板、选对布局面板。

绑定数据源和基本结构

ItemsControl 本身不提供滚动或选中逻辑,所以它轻量但“裸”。你需要手动指定 ItemsSource(推荐用 ObservableCollection)和 ItemTemplate

  • ViewModel 中定义集合: public ObservableCollection Items { get; } = new();
  • AXAML 中绑定:
  • 必须显式写 ItemTemplate,否则什么也不显示

自定义每一项的外观(DataTemplate)

模板里可以放任意控件组合,支持绑定子属性。常见写法:

  • 布局内容
  • 直接绑定字段:
  • 嵌套控件也支持绑定:
  • 如果想复用已有 UserControl,可用

控制整体布局方式(ItemsPanelTemplate)

ItemsPanelTemplate 决定所有子项怎么“摆”——这是自定义列表形态的核心:

TTSMaker
TTSMaker

TTSMaker是一个免费的文本转语音工具,提供语音生成服务,支持多种语言。

下载
  • 水平排列
  • 垂直流式(默认):
  • 绝对定位(画布):,再配合 Canvas.LeftCanvas.Top 绑定 VM 的 X/Y 属性
  • 网格布局需自行实现,ItemsControl 不内置 UniformGrid,可改用 Grid + ItemsRepeater 或手动生成行列

附加样式与行为(如悬停、右键菜单)

因为 ItemsControl 没有自带容器元素(如 ListBoxItem),要加交互得靠样式选择器或模板内嵌:

  • 右键菜单:在 ItemsPanelTemplate 的根面板(如 Canvas)上设 ContextMenu
  • 鼠标悬停效果:用样式选择器匹配 ContentPresenter,例如:
  • 点击响应:在 ItemTemplate 根元素加 PointerPressed 事件,或用命令绑定到 VM 方法

基本上就这些。它不复杂但容易忽略 ItemsPanelTemplateItemTemplate 的强制性——漏掉任一个,界面就空白。

相关专题

更多
html5动画制作有哪些制作方法
html5动画制作有哪些制作方法

html5动画制作方法有使用CSS3动画、使用JavaScript动画库、使用HTML5 Canvas等。想了解更多html5动画制作方法相关内容,可以阅读本专题下面的文章。

500

2023.10.23

PPT动态图表制作教程大全
PPT动态图表制作教程大全

本专题整合了PPT动态图表制作相关教程,阅读专题下面的文章了解更多详细内容。

12

2026.01.07

c++ Libcurl用法详解
c++ Libcurl用法详解

本专题整合了c++ Libcurl用法详解,阅读专题下面的文章了解更多详细内容。

0

2026.01.07

c++ Libcurl用法大全
c++ Libcurl用法大全

本专题整合了c++ Libcurl用法详解,阅读专题下面的文章了解更多详细内容。

0

2026.01.07

C++ vector用法汇总
C++ vector用法汇总

本专题整合了C++中vector的用法大全,阅读专题下面的文章了解更多详细内容。

2

2026.01.07

C++ vector用法大全
C++ vector用法大全

本专题整合了C++中vector的用法大全,阅读专题下面的文章了解更多详细内容。

0

2026.01.07

2026年漫蛙最新官网地址
2026年漫蛙最新官网地址

漫蛙官网访问入口为https://manwa.me,另提供manwa.cc、manwa.vip、manwa.site等多节点备用链接,支持跨设备同步、个性化阅读及HTTPS安全加密。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

57

2026.01.07

php做exe需要在什么样的环境
php做exe需要在什么样的环境

PHP无法真正编译为EXE,所谓打包实为将解释器、脚本及依赖库封装成自解压容器;主流方案是ExeOutputforPHP(商业、Windows)和PHPDesktop(开源、跨平台),需手动处理扩展依赖、路径适配与运行时限制。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1

2026.01.07

抖音抖币官方充值渠道汇总
抖音抖币官方充值渠道汇总

抖音官方抖币充值官网入口为https://pay.douyin.com/,具备直连支付系统、全端统一鉴权、HTTPS加密传输、多设备实时同步等特性,支持微信/支付宝/银联/话费等多种支付方式及严密账户安全机制。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

5

2026.01.07

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 11万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.8万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号