Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法获取换行符以使用ToolTipService.ToolTip_C#_Sql_Silverlight_Telerik_Newline - Fatal编程技术网

C# 无法获取换行符以使用ToolTipService.ToolTip

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 我究竟如何让换行符或换

所以我使用的是Silverlight 4和Telerik RadGridView

我有以下GridViewColumn


creditissuetext
正在从我们的SQL Server中提取,在SQL Server中,一个函数连接所有可能的信用问题,并使用换行符将它们连接在一起,以便在鼠标悬停在图标上方时在工具提示中使用

我已经尝试了中的所有内容,但都没有效果

  • 
    
  • 
  • 
    
  • 
    
  • 
  • 
    

  • \n
  • \r\n
我究竟如何让换行符或换行符在从SQL中提取的绑定字符串中工作?

我使用:


 
用于内联文本的换行符。我能够使用以下命令绑定到带有换行符的文本:

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