Получить внутри тега текст TextBlock и добавить в него несколько пробелов C# WPF - PullRequest
0 голосов
/ 25 февраля 2020

Мой текстовый блок:

<TextBlock x:Name="textblock"><Bold>Customers</Bold></TextBlock>

Я хочу добавить несколько пробелов перед содержанием, например:

<TextBlock x:Name="textblock">   <Bold>Customers</Bold></TextBlock>

в коде как:

textblock.Text = "   " + textblock.Text;

Но textblock.Text возвращает null

В XAML все работает нормально:

<TextBlock x:Name="textblock">&#160;&#160;&#160;<Bold>Customers</Bold></TextBlock>

Но я должен добавить пробелы в коде, и текст выделен жирным шрифтом, поэтому я не могу установить свойство content as Text, например:

<TextBlock x:Name="textblock" Text="Customers"></TextBlock>

Потому что, если я пытаюсь добавить свойство <Bold>Customers</Bold> in Text как:

<TextBlock x:Name="textblock" Text="<Bold>Customers</Bold>"></TextBlock>

Это выдает ошибку, что <> символы не являются разрешено внутри Text собственность.

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Это потому, что оно выделено жирным шрифтом. Когда вы помещаете его в теги Bold, он не попадает в свойство Text. Вместо этого он попадает в коллекцию Inlines.

Я предлагаю вам удалить теги жирным шрифтом и установить для веса шрифта текстового блока значение Bold.

<TextBlock x:Name="textblock" FontWeight="Bold">Customers</TextBlock>

Вы также можете поместить текст в текстовый тег и сделайте его немного короче в смысле потери закрывающего тега TextBlock.

<TextBlock x:Name="textblock" FontWeight="Bold" Text="Customers"/>

Если вы действительно хотите сохранить полужирные теги, вы должны вставить новую строку с 3 пустыми пробелами перед текущий встроенный примерно так:

textblock.Inlines.InsertBefore(textblock.Inlines.FirstInline,  new Run("   "));
0 голосов
/ 25 февраля 2020

Вы можете установить свойство Text для TextBlock:

<TextBlock x:Name="textblock" Text="    Customers"/>

И если оно должно быть выделено жирным шрифтом, используйте его следующим образом:

<TextBlock x:Name="textblock">
    <TextBlock.Inlines>
        <Run FontWeight="Bold" Text="     Customers" />
    </TextBlock.Inlines>
</TextBlock>

Результат будет выглядеть следующим образом:

Result

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...