WPF ToolTip多行显示异常:资源字典字符串无效的解决方法
解决WPF ToolTip多行显示失效问题
问题原因
你在资源字典中定义的testString使用了XML实体 ,但XAML解析字符串资源时,会将 当作普通文本字符存储,而非转换为实际的换行符(\n)。这导致绑定到ToolTip的字符串中没有真正的换行标记,自然无法实现多行显示。
解决方案
方案1:直接在字符串资源中使用实际换行
在XAML里直接敲回车换行,让字符串资源包含真实的换行符:
<Grid.Resources> <system:String x:Key="testString">Up Down</system:String> </Grid.Resources>
修改后,ToolTipBtn3和Btn4都会正常显示两行内容。
方案2:使用CDATA段包裹内容
如果需要保持代码一行写法,可使用CDATA包裹内容,确保XML解析器正确识别换行:
<Grid.Resources> <system:String x:Key="testString"><![CDATA[Up Down]]></system:String> </Grid.Resources>
方案3:针对TextBlock配置换行属性(适配ToolTipBtn4)
若不想修改字符串资源,可给TextBlock添加换行相关属性(仅当字符串包含真实换行符时生效):
<Button.ToolTip> <TextBlock Text="{StaticResource testString}" TextWrapping="Wrap"/> </Button.ToolTip>
验证效果
修改后,ToolTipBtn3和Btn4会与Btn1、Btn2一致,显示:
Up
Down
内容的提问来源于stack exchange,提问作者user20320225
相关产品推荐
相关产品推荐

