C# 无法获取换行符以使用ToolTipService.ToolTip
所以我使用的是Silverlight 4和Telerik RadGridView 我有以下GridViewColumn:C# 无法获取换行符以使用ToolTipService.ToolTip,c#,sql,silverlight,telerik,newline,C#,Sql,Silverlight,Telerik,Newline,所以我使用的是Silverlight 4和Telerik RadGridView 我有以下GridViewColumn: creditissuetext正在从我们的SQL Server中提取,在SQL Server中,一个函数连接所有可能的信用问题,并使用换行符将它们连接在一起,以便在鼠标悬停在图标上方时在工具提示中使用 我已经尝试了中的所有内容,但都没有效果 \n \r\n 我究竟如何让换行符或换
creditissuetext
正在从我们的SQL Server中提取,在SQL Server中,一个函数连接所有可能的信用问题,并使用换行符将它们连接在一起,以便在鼠标悬停在图标上方时在工具提示中使用
我已经尝试了中的所有内容,但都没有效果
代码>
代码>
代码>
代码>
代码>
代码>
\n
\r\n


用于内联文本的换行符。我能够使用以下命令绑定到带有换行符的文本:
TestText = "Some text \r\n with a line break";
<TextBlock Text="{Binding TestText}" ToolTipService.ToolTip="{Binding TestText}" />
TestText=“某些文本\r\n带有换行符”;
产生了:
试试这个……可能对你的情况有效……不确定
<Image Source="DefaultImage.png" Width="16" Height="16" >
<Image.ToolTip>
<ToolTip>
<TextBlock MaxWidth="80" TextWrapping="Wrap" Text="{Binding CreditIssuesText}"></TextBlock>
</ToolTip>
</Image.ToolTip>
</Image>
根据需要将maxwidth设置为textblock。谢谢 我知道问题出在哪里了。。。
在SQL数据库中,我们将换行符存储为\n
。我不知道为什么或如何,但在通过我们的WCF服务从SQL检索数据和将数据绑定到GridView
时,工具提示字符串正在被修改。所有的\n
换行符都被转义为\\n
为了解决这个问题,我最终做了一个简单的转换器,用环境替换\\n
。换行符
:
公共对象转换(对象值、类型targetType、对象参数、CultureInfo区域性)
{
var s=string.Empty;
尝试
{
s=value.ToString().Trim().Replace(“\\n”,Environment.NewLine);
}
抓住
{
//值很可能为空;
}
返回s;
}
公共对象转换回(对象值、类型targetType、对象参数、CultureInfo区域性)
{
抛出新的NotImplementedException();
}
然后,我只需将图像的ToolTipService.ToolTip
属性值更改为:
这很好,但它带来了另一个问题。。。
仅当您将鼠标悬停在单元格中的图像上时,工具提示才会显示。所需的效果是当您将鼠标悬停在单元格的任何部分上时显示工具提示
为我指明了解决该问题的正确方向
解决方案是在GridViewColumn.ToolTiptTemplate
属性中使用TextBlock
,我将工具提示文本绑定到TextBlock.text
属性:
同样,这是伟大的,但它提出了另一个问题。。。
我试图让工具提示显示在单元格底部,但它不符合工具提示。放置
值,无论我将属性放在哪里,无论它是在文本块
、图像
、网格视图列
,还是其他任何地方
最后我不得不用GridViewColumn.CellTemplate
替换GridViewColumn.CellStyle
和GridViewColumn.TooliptTemplate
,这样我就可以使用它的Template
属性将图像
包装到我移动ToolTipService.ToolTip
和ToolTipService.Placement
属性
一旦我这样做了,当您将鼠标悬停在单元格的任何部分上时,工具提示会显示出来,它尊重放置值并定位在单元格的底部,换行符保持不变:
是的,我已经试过了。它在我的场景中不起作用。可能是因为它是一个图像
,而不是文本块
。我看到的所有示例通常都是TextBlock
。