gpt4 book ai didi

c# - 为什么 Silverlight TextBox 使用\r 而不是 Environment.Newline (\r\n) 作为换行符?

转载 作者:可可西里 更新时间:2023-11-01 09:14:39 27 4
gpt4 key购买 nike

在 silverlight 中,如果 TextBox AcceptsReturn,所有换行符都是\r,即使 Environment.Newline 是\r\n。为什么是这样? (WPF 将\r\n 作为文本框的换行符)

最佳答案

同意二探的回答。我遇到过这样的场景,这会带来不便。

我们有一个应用程序,它通过 Silverlight 文本框从用户那里收集字符串数据,并将该数据存储在 SQL Server 数据库中,这很常见。当应用程序的其他组件使用该存储的字符串数据并期望换行符由 "\r\n" 表示时,就会出现问题。此类组件的一个示例是 Telerik 的报告解决方案:参见 Line break issue in multi line text boxes .

我通过使用这个值转换器克服了这个问题:

public class LineBreakCorrectionConverter : IValueConverter
{
private const string CR = "\r";
private const string CRLF = "\r\n";

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string text = value as string;

if (text == null)
return null;

return text.Replace(CRLF, CR);
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string text = value as string;

if (text == null)
return null;

return text.Replace(CR, CRLF);
}
}

关于c# - 为什么 Silverlight TextBox 使用\r 而不是 Environment.Newline (\r\n) 作为换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3610400/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com