Создать TextBlock во время выполнения

Я пытаюсь установить флажки с переносом слов во время выполнения. XAML для флажка с переносом слов выглядит так:

<CheckBox Width="140" Height="35">
    <ContentControl>
        <TextBlock TextWrapping="Wrap">This is a long text with word wrap</TextBlock>
    </ContentControl>
</CheckBox>

Теперь я хочу создать этот XAML с кодом, но не знаю, как заставить его работать. Я могу создать флажок и добавить его в существующий WrapPanel, но элемент управления textBlock не имеет свойства содержимого. Как я могу добавить контент в textBlock и как добавить оба (contentControl и textBlock) в флажок?

For intIndex = 0 To m_aryActions.Length - 1

    Dim textBlock As TextBlock = New TextBlock
    Dim contentControl As ContentControl = New ContentControl
    Dim checkBox As CheckBox = New CheckBox

    textBlock.TextWrapping = TextWrapping.Wrap
    contentControl.Content = textBlock

    With checkBox
        .Width = 140
        .Height = 25
        .Name = "CheckBox" & intIndex
    End With

    WrapPanel.Children.Add(checkBox)

Next

Спасибо Питер


person user1954535    schedule 07.01.2013    source источник
comment
Ни у кого нет идеи? Слишком просто или слишком часто спрашивают? Я искал, но не нашел решения. Слишком трудно? Я этому не верю.   -  person user1954535    schedule 09.01.2013


Ответы (1)


Хорошо, найду сам:

Dim textBlock As TextBlock = New TextBlock
Dim contentControl As ContentControl = New ContentControl
Dim checkBox As CheckBox = New CheckBox

With textBlock
    .TextWrapping = TextWrapping.Wrap
    .Text = m_aryWishes(intIndex)
End With

contentControl.Content = textBlock

With checkBox
    .Width = intWidth
    .Height = intHeight
    .Content = contentControl
    .Name = "CheckBox" & intIndex
    .Padding = New System.Windows.Thickness(10, 0, 20, 0)
    .Focusable = False
    .ClickMode = ClickMode.Press
End With

WrapPanel.Children.Add(checkBox)
person user1954535    schedule 10.01.2013