Създайте 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