如何在TreeView中包裹TextBlock内容?

2023-12-06

I have TreeView,它使用数据模板显示一些数据。这是 XAML:

<TreeView Grid.Row="0" ItemsSource="{Binding Railways}" x:Name="tvDatawareObjects"
          ScrollViewer.HorizontalScrollBarVisibility="Disabled">
    <TreeView.ItemContainerStyle>
        <Style TargetType="{x:Type TreeViewItem}">
            <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
            <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
        </Style>
    </TreeView.ItemContainerStyle>
    <TreeView.Resources>
        <!-- other templates here... -->
        <HierarchicalDataTemplate DataType="{x:Type viewModels:ProjectViewModel}" ItemsSource="{Binding Phases}">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <TextBlock Text="{Binding Model.Code}" FontWeight="DemiBold" />
                <TextBlock Text="{Binding Model.Title}" TextWrapping="Wrap" Foreground="Gray" Grid.Row="1" />
            </Grid>
        </HierarchicalDataTemplate>

        <HierarchicalDataTemplate DataType="{x:Type viewModels:CollectionViewModel}" ItemsSource="{Binding Items}">
            <TextBlock Text="{Binding CollectionName}" />
        </HierarchicalDataTemplate>
    </TreeView.Resources>
</TreeView>

文本换行<TextBlock Text="{Binding Model.Title}" TextWrapping="Wrap" Foreground="Gray" Grid.Row="1" />不起作用。我究竟做错了什么?


我相信TextBlock没有换行,因为它没有定义的宽度。网格列TextBlock具有 * 宽度,该宽度将随着TextBlock宽度增长。尝试设置宽度TextBlock或列,看看更改是否会导致TextBlock包裹。

Update:

更具体地说,问题在于TreeViewItem将根据其内容的大小调整自身大小,ColumnDefinition将填充(无限)可用空间并且TextBlock,没有宽度限制,永远不会换行。这个帖子很好地描述了 TreeViewItem 的行为方式。总结一下:内容领域TreeViewItem设置为“自动”,因此它将增长以适应内容。显式设置宽度TreeViewItem尝试绑定你的ColumnDefinition宽度到TreeView's ActualWidth.

XAML:

<TreeView Width="100">
    <TreeViewItem>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="{Binding RelativeSource={RelativeSource AncestorType=TreeView}, Path=ActualWidth}"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <TextBlock Text="Lorem Ipsum" />
            <TextBlock Text="Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book." 
                       TextWrapping="Wrap" Grid.Row="1"/>
            </Grid>
        </TreeViewItem>
    </TreeView>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在TreeView中包裹TextBlock内容? 的相关文章

  • SL4 AutoCompleteBox 重复筛选结果问题

    我在 AutoCompleteBox 过滤方面遇到问题 它似乎记住了之前的过滤器 例如 我输入 A 它会返回 1 项 我删除 A 并输入 Z 这应该返回 1 项 问题是它返回 A 过滤器加上 Z 的结果 我删除 Z 并输入 S 这会带回 2
  • MVC 重定向到没有控制器的视图

    希望应该是一个简单的 我创建了一个通用错误视图 当整个站点的操作方法内发生异常时 我想显示该视图 我创建了一个部分页面 所有导航都位于其中 因此我不需要在此视图上使用控制器 那么如何从控制器内的操作方法重定向到它 像这样的东西 HttpPo
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • C# 中的协变和逆变

    首先我要说的是 我是一名正在学习 C 编程的 Java 开发人员 因此 我会将我所知道的与我正在学习的进行比较 我已经使用 C 泛型几个小时了 我已经能够在 C 中重现我在 Java 中知道的相同内容 除了几个使用协变和逆变的示例 我正在读
  • 如何将pdf页面设置设置为打印属性对话框?

    大家好 我想知道如何设置 pdf 页面设置到打印属性对话框 例如 如果我的 PDF 页面设置为横向 则布局会自动显示横向而不是纵向 如果我的 PDF 页面设置为纵向 则布局会自动显示纵向 我在这个主题上做了很多研发 但没有找到任何满意的链接
  • 如何使用汇编获取BIOS时间?

    我正在从头开始实现一个小型操作系统 用于教育目的 现在 我想使用汇编来获取 BIOS 时间 我对此进行了很多搜索 但找不到任何代码示例来执行此操作 如果有人可以提供任何参考或代码示例或与此相关的任何内容 我将非常感激 See 时钟中断 1a
  • 使用反射获取基类的受保护属性值

    I would like to know if it is possible to access the value of the ConfigurationId property which is located in the base
  • .net Framework (.net 4.0) 中定义 Base 3 数字的类

    我正在寻找一些可以用来定义 3 基数 三进制数 的类 有什么我可以在 net 框架中使用的东西或者我需要写一些东西吗 谢谢你的帮助 您可以使用解析Convert ToInt32 s base http msdn microsoft com
  • 如何使用泛型类型的 DataContractSerializer 编写自定义序列化器?

    我想编写一个自定义序列化器 用于将会话状态存储到Azure 缓存 预览版 这意味着这个自定义序列化器必须实现IDataCacheObjectSerializer 如果我错了 请告诉我 我需要编写这个自定义序列化程序的原因是我需要序列化一些包
  • 指示泛型返回动态类型的对象

    这个问题是我原来问题的后续问题here https stackoverflow com questions 2541184 using a type object to create a generic 假设我有以下泛型类 简化 class
  • 使用scanf()时如何区分整数和字符

    我只是使用该功能scanf 代码如下 scanf d a printf d a 当我输入1时 它会像我想要的那样打印1 但即使我输入 1a 它也会像以前一样打印 1 当用户输入非整数时 例如 2 3 12ab 1 a 我想向用户显示 输入整
  • 为什么重载方法在 ref 仅符合 CLS 方面有所不同

    公共语言规范对方法重载非常严格 仅允许根据其参数的数量和类型来重载方法 如果是泛型方法 则根据其泛型参数的数量进行重载 根据 csc 为什么此代码符合 CLS 无 CS3006 警告 using System assembly CLSCom
  • 数据损坏 C++ 和 Python 之间的管道

    我正在编写一些代码 从 Python 获取二进制数据 将其通过管道传输到 C 对数据进行一些处理 在本例中计算互信息度量 然后将结果通过管道传输回 Python 在测试时 我发现如果我发送的数据是一组尺寸小于 1500 X 1500 的 2
  • 将 bignum 类型结构转换为人类可读字符串的有效方法是什么?

    我有一点问题 为了增长我的 C 知识 我决定尝试实现一个基本的 bigint 库 bigint 结构的核心将是一个 32 位整数数组 选择它们是因为它们适合寄存器 这将允许我在数字之间进行操作 这些操作将在 64 位整数中溢出 这也将适合寄
  • 展开路径中具有环境变量的文件名

    最好的扩张方式是什么 MyPath filename txt to home user filename txt or MyPath filename txt to c Documents and settings user filenam
  • 是否有任何不使用公共虚拟方法的正当理由? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 是否有任何不使用公共虚拟方法的正当理由 我在某处读到我们应该避免使用公共虚拟方法 但我想向专家确认这是否是有效的声明 对于良好且稳定的 API
  • 将一个 long 转换为两个 int 以进行重构

    我需要将一个参数作为两个 int 参数传递给 Telerik Report 因为它不能接受长参数 将 long 拆分为两个 int 并在不丢失数据的情况下重建它的最简单方法是什么 使用掩蔽和移位是最好的选择 根据文档 long 保证为 64
  • 正在获取“未终止 [] 设置”。 C# 中的错误

    我正在 C 中使用以下正则表达式 Regex find new Regex url
  • 在何处将 CFLAG(例如 -std=gnu99)添加到 (Eclipse CDT) 自动工具项目中

    我有一个简单的 Autotools C 项目 不是 C 其框架是由 Eclipse CDT Juno 为我创建的 CFLAG 通过检查 似乎是 g O2 我希望所有生成的 make 文件也具有 std gnu99附加到 CFLAG 因为我使
  • 如何确定给定方法可以抛出哪些异常?

    我的问题和这个真的一样 找出 C 中方法可能抛出的异常 https stackoverflow com questions 264747 finding out what exceptions a method might throw in

随机推荐

  • 戴尔工作站测试VMware虚拟机使用 RTX4090显卡

    1 随着人工智能和AI的发展 显卡运算获得越来越广发的运用 nvidia必然是首选 如何将nvidia显卡应用于虚拟机成为一个新的需求 好处是不同虚拟机可以轮流使用显卡进行计算 缺点是不能同时使用 本次需求为硬件为戴尔工作站 里面装两块 R
  • 从小米14安装不上应用说起【适配64位】

    一 原因 某天早上 同事突然对我说我换了小米14pro手机但是安装不了公司的打卡软件 怎么办呀 一时间 我也不知道原因 看到给我发的安装不上的截图陷入了沉思 随即打开在git仓库里找到这个项目 到本地编译打开 开始思考解决办法 作者 风罗伊
  • 网络安全(一)--网络环境构成,系统的安全

    2 网络攻防环境 目标 了解攻防环境构成 了解入侵检测系统 平台 的部署位置 2 1 环境构成 2 1 1 环境框图 一个基本的网络攻防实验环境包括 靶机 攻击机 入侵检测分析系统 网络连接四部分组成 一个基础的网络攻防实验环境需要如下组成
  • PyQt6 QComboBox下拉组合框控件

    锋哥原创的PyQt6视频教程 2024版 PyQt6 Python桌面开发 视频教程 无废话版 玩命更新中 哔哩哔哩 bilibili 2024版 PyQt6 Python桌面开发 视频教程 无废话版 玩命更新中 共计34条视频 包括 20
  • 计算机毕设ssm二手教材交易平台的设计与实现6k3cy9 独有(附源码)

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 JSP mybatis Ma
  • 大数据的技术栈-逐步完善

    目录 1 hadoop a HDFS分布式文件系统 b Yarn集群资源管理器 c MapReduce sql引擎 d Impala sql引擎 e 工具概观 2 数据仓库知识 a Hive数据库 1 Hive Sql 2 数据库结构 b
  • 计算机毕设ssm工厂产品销存管理系统741e99 独有(附源码)

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 JSP mybatis Ma
  • linux ls 统计文件数量和文件夹数量

    首先要明白 A 显示所有文件和文件夹 含隐藏 是 ls al 都是小写的a参数 root hxm aaa ls al B 显示所有文件和文件夹 不含隐藏 是 ls l root hxm aaa ls l C 显示所有 文件夹 不注意 只显示
  • rt-thread studio中新建5.02版本报错

    先吐槽一下 rt thread studio出现BUG真多 好多时间都是在找BUG 但里面用好多控件还是挺好用的 真是又爱又恨 所以一般使用功能不多的话还是用keil多一点 创建5 02版本工程之后直接进行编译 直接会报下面这个错误 资源
  • Spring Boot新特性 JdbcClient

    SpringBoot 3 2 引入了JdbcClient API组件可以对数据库操作 实际上JdbcClient是在JdbcTemplate基础上进行了封装 SpringBoot 3 2引入了新的 JdbcClient 用户数据库操作 Jd
  • WPS项目编号(序号)无法继续前一列表

    问题 在编写文档中 序号无法继续前一列表 序号之间无法自动连接 解决方法 使用格式刷 格式刷是复制格式的操作 可以用于选中已有格式的单元格 复制到需要设置格式的单元格 参考文章 在wps中 编号不能继续上一个编号时 采取的一种方法 CSDN
  • 计算机毕设ssm高校餐厅评价小程序y5b7i9 独有(附源码)

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 JSP mybatis Ma
  • 计算机毕设ssm歌曲发烧友网站4956v9 独有(附源码)

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 JSP mybatis Ma
  • Fiddler移动端抓包

    本篇文章 博主想使用通俗易懂的话语 让大家明白以下内容 什么是抓包 哪些场景需要用到抓包 Fiddler抓包的原理 怎样使用Fiddler进行移动端抓包 抓包 包 Packet 是TCP IP协议通信传输中的数据单位 一般也称 数据包 我们
  • rt-thread studio中新建5.0不能用

    文章目录 一 版本对比 二 文件和文件夹打斜杠 在使用RT Thread studio创建新工程5 0版本的时候 结果发现新建完成之后程序不能正常运行 但是创建4 10版本的时候却能运行 那肯定是新版本出现了BUG 一 版本对比 首先对比了
  • .NET 中忽略 HttpWebRequest ReadWriteTimeout;在单声道中工作

    将数据写入 Web 服务器时 我的测试显示 HttpWebRequest ReadWriteTimeout 被忽略 这与MSDN规范 例如 如果我将 ReadWriteTimeout 设置为 1 1 毫秒 调用 myRequestStrea
  • 如何将会话变量传递给 RoR 中的模型?

    我之前在应用程序中使用了全局变量来传递信息 但我遇到了一个问题 感谢这里的每个人建议我将这些数据存储在数据库的会话中 我尝试了一下 但发现无法访问Model中的session变量 我用谷歌搜索知道这是模型的正常行为 RoR 不会将会话变量传
  • 更改 JCheckBox/JRadioButton 选择颜色

    有没有办法更改复选框 单选按钮的选择颜色 以下是如何为 JCheckBox 执行此操作 UIManager put CheckBox focus Color RED 这里有一个很好的工具 http tips4java wordpress c
  • 为什么部分匹配时 preg_match() 总是验证为 true?

    最近一直在尝试正则表达式 当我试图确认preg match 函数没有返回预期结果 false 我意识到我的正则表达式在部分匹配和完全匹配的情况下都会评估为 true 任何更有经验的人都可以分享一些关于为什么会这样工作的评论吗 我已经使用以下
  • 如何在TreeView中包裹TextBlock内容?

    I have TreeView 它使用数据模板显示一些数据 这是 XAML