Как мы можем добавить дочерний элемент в пользовательский элемент управления, производный от Panel? - PullRequest
0 голосов
/ 13 марта 2020

Я делаю пользовательский элемент управления, производный от StackPanel. Это ряд кроссвордов. Сначала я добавил ячейки вручную в XAML, и ячейки отображаются нормально, но когда я добавляю их в конструктор кода элемента управления, они исчезают. Как я могу решить эту проблему?

Я пытался изменить дочерние элементы, добавив детали на InternalChildren.Add(), Children.Add(), AddVisualChild(), но ни одна из них не работает.

Код строки:

public class Row : StackPanel
{
    public static readonly DependencyProperty RowAnswerProperty = DependencyProperty.Register("RowAnswer", typeof(string), typeof(Row), new PropertyMetadata(""));

    public string RowAnswer
    {
        get { return (string)GetValue(RowAnswerProperty); }
        set { SetValue(RowAnswerProperty, value); }
    }

    public ObstacleRow()
    {
        Orientation = Orientation.Horizontal;

        Children.Clear();
        string answerWithoutSpace = RowAnswer.Replace(" ", "").ToUpper();
        for (int i = 0; i < answerWithoutSpace.Length; i++)
            AddLogicalChild(new Cell { CellChar = answerWithoutSpace[i], Width = 32, Height = 32, Margin = new Thickness(1, 0, 1, 0) });
    }
}
...