Как отобразить текст в одной строке в wpf textblock

Я - новичок с wpf, что я хочу отобразить текст в одной строке в wpf textblock., например:

<TextBlock 
    Text ="asfasfasfa
    asdasdasd"
</TextBlock>

TextBlock отображают его в двух значениях по умолчанию строк,

но я хочу это только в одной строке как это "asafsf asfafaf". Я имею в виду, показывают весь текст в одной строке даже в тексте существует больше чем одна строка
что мне делать?

7
задан svick 17 October 2012 в 08:45
поделиться

2 ответа

Используйте преобразователь:

    <TextBlock Text={Binding Path=TextPropertyName,
Converter={StaticResource SingleLineTextConverter}}

SingleLinetextConverter.cs:

public class SingleLineTextConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        string s = (string)value;
        s = s.Replace(Environment.NewLine, " ");
        return s;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
16
ответ дан 6 December 2019 в 08:14
поделиться

Вместо этого:

            <TextBlock Text="Hello
                How Are
                You??"/>

Используйте это:

            <TextBlock>
                Hello
                How Are
                You??
            </TextBlock>

Или это:

            <TextBlock>
                <Run>Hello</Run> 
                <Run>How Are</Run> 
                <Run>You??</Run>
            </TextBlock>

или настройте свойство текста в коде, позади которого это:

(в XAML)

            <TextBlock x:Name="MyTextBlock"/>

В коде - C #)

            MyTextBlock.Text = "Hello How Are You??"

Кодовой подход имеет преимущество, которое вы можете отформатировать ваш текст, прежде чем настроить его. Пример: если текст извлекается из файла, и вы хотите удалить любую каретую возврату новых линий, вы можете сделать это таким образом:

 string textFromFile = System.IO.File.ReadAllText(@"Path\To\Text\File.txt");
 MyTextBlock.Text = textFromFile.Replace("\n","").Replace("\r","");
6
ответ дан 6 December 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: