C# 用C设置大文本块的格式#
我已为C# 用C设置大文本块的格式#,c#,visual-studio-2012,windows-8,C#,Visual Studio 2012,Windows 8,我已为说明指定了一段文字。此“说明”根据项目的id从文本文件中提取 private string _description = string.Empty; public string Description { get { return this._description; } set { this.SetProperty(ref this._description, value); } } 这可以正常工作并返回描述。但它返回为一个大的文本块/文本墙 我尝试了以下方法,但效
说明
指定了一段文字。此“说明”根据项目的id
从文本文件中提取
private string _description = string.Empty;
public string Description
{
get { return this._description; }
set { this.SetProperty(ref this._description, value); }
}
这可以正常工作并返回描述。但它返回为一个大的文本块/文本墙
我尝试了以下方法,但效果不好,它只格式化定义的文本,对我没有帮助,因为Description
是动态的
String ITEM_CONTENT = String.Format(
"Item Content: {0}\n\n{0}\n\n{0}\n\n{0}\n\n{0}\n\n{0}\n\n{0}",
"proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat.");
我正在将描述装配到XAML页面上的文本块中
<TextBlock x:Name="decription" Text="{Binding Description}"
FontSize="30" TextWrapping="Wrap" Width="Auto"
MaxWidth="1400" LineHeight="35" Padding="20"/>
您可以只解析文本,在每5个句点后插入换行符,然后重新生成字符串
private string _description = string.Empty;
public string Description
{
get
{
return _description;
}
set
{
var description = string.Empty;
var substrings = value.Split( new[] { '.', '?', '!' }, StringSplitOptions.RemoveEmptyEntries );
for ( var i = 0; i < substrings.Length; i++ )
{
description += substrings[i] + ".";
if ( i % 5 == 0 && i != 0 )
{
description += Environment.NewLine + Environment.NewLine;
}
}
_description = description;
}
}
private string\u description=string.Empty;
公共字符串描述
{
得到
{
返回描述;
}
设置
{
var description=string.Empty;
var substring=value.Split(新[]{'.','?','!'},StringSplitOptions.RemoveEmptyEntries);
对于(var i=0;i;
如果(i%5==0&&i!=0)
{
description+=Environment.NewLine+Environment.NewLine;
}
}
_描述=描述;
}
}
看看这个
它应该把事情弄清楚,给你一些额外的选择
此外,在输入时,您应该执行“\r\n”
,或者更好的操作:
String ITEM_CONTENT = String.Format("Item Content: {0}{1}{0}{1}{0}{1}{0}{1}",
"proin lobortis sollicitudin augue elit mus congue
fermentum parturient,fringilla euismod feugiat.",
Environment.NewLine);
编辑:
试试这个:
public string Description
{
get { return _description; }
set
{
_description = string.Empty;
var substrings = value.Split( '.' );
for ( int i = 0; i < substrings.Length; i++ )
{
_description += substrings[i];
if ( i%5 == 0 )
{
_description += Environment.NewLine;
}
}
}
}
private string _description = string.Empty;
公共字符串描述
{
获取{return\u description;}
设置
{
_description=string.Empty;
var substring=value.Split('.');
对于(int i=0;i
我不知道你为什么要用裁判来做这一切。只需编辑您的私有字符串(
\u description
),就可以了 请查看上面的编辑内容您将其放入了什么?@Noctis请查看editsOK,如果您得到了包装,并且您只想添加新行,请查看e.beyer答案,您可以执行类似的操作。使用您尝试的最后一次编辑,您正在空字符串“”上进行拆分。它应该发生在值上。所以它应该是var substrings=value.Split('.')
但是ITEM_CONETENT
将不是示例中的文本,它将从数据文件`set{var description=string.Empty;var substrings=“”.Split('.');for(int i=0;i描述设置为描述属性,否则,您将看不到更改:)@Tester-我已更新了我的答案。我在测试前添加了一个愚蠢的错误。我还添加了一行更好的句子结尾解析行。试一试。
public string Description
{
get { return _description; }
set
{
_description = string.Empty;
var substrings = value.Split( '.' );
for ( int i = 0; i < substrings.Length; i++ )
{
_description += substrings[i];
if ( i%5 == 0 )
{
_description += Environment.NewLine;
}
}
}
}
private string _description = string.Empty;