Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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# 用C设置大文本块的格式#_C#_Visual Studio 2012_Windows 8 - Fatal编程技术网

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;