You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF中如何通过编程方式为ListViewItem添加子项

用代码实现带图片的ListViewItem(WPF)

嘿,我明白你想要的效果了——就是用代码复刻那段XAML里的ListViewItem,对吧?其实完全可以照着XAML的结构一步步用C#代码还原,咱们直接上干货:

核心思路

你已经初始化了ListViewItem实例,接下来只需要手动创建对应层级的控件:先做StackPanel,再往里加Image和TextBlock,最后把整个StackPanel赋值给ListViewItem的Content属性,和XAML的嵌套逻辑完全一致。

完整代码示例

// 假设你已经初始化了ListViewItem实例
var listViewItem = new ListViewItem();

// 1. 创建水平布局的StackPanel
var stackPanel = new StackPanel();
stackPanel.Orientation = Orientation.Horizontal;

// 2. 创建Image控件并设置属性
var docImage = new Image();
docImage.Height = 30;
// 这里的图片路径要和XAML里的一致,确保资源能正确加载
// 如果是项目内嵌资源,可能需要用pack URI格式:new Uri("pack://application:,,,/YourAssemblyName;component/Resources/docx.png", UriKind.Absolute)
docImage.Source = new BitmapImage(new Uri("docx.png", UriKind.RelativeOrAbsolute));

// 3. 创建TextBlock并设置文本
var textBlock = new TextBlock();
textBlock.Text = "image";

// 4. 把Image和TextBlock添加到StackPanel的子控件集合
stackPanel.Children.Add(docImage);
stackPanel.Children.Add(textBlock);

// 5. 将StackPanel设置为ListViewItem的内容
listViewItem.Content = stackPanel;

小提醒

  • 关于图片路径:如果你的图片是作为项目资源添加的(比如放在Resources文件夹),记得用pack URI格式来指定路径,避免出现图片加载失败的情况。
  • 如果你需要给控件加样式、间距之类的,也可以像XAML里那样通过代码设置对应属性,比如给StackPanel加Margin,给TextBlock加Padding等等。

内容的提问来源于stack exchange,提问作者Hao Peng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:03:52