WPF Не уверен, как изменить фон текстового поля в динамически созданной панели стека

В проекте WPF у меня есть панель стека...

<StackPanel Name="spOptionsValue" Orientation="Vertical" Visibility="Collapsed" Margin="10 0 0 0"  KeyUp="SaveTestOptionsInXMLData2"></StackPanel>

Что я динамически загружаю значения в...

spOptionsValue.Children.Add(new TextBox { Text = attributeChild.Value, Height = 26, Name = "tbTestAttributeValue" });

Если я найду ошибку в значении этого текстового поля (после того, как пользователь изменит его), как я могу сделать фон красным и поместить фокус на это текстовое поле?

Когда я пытаюсь что-то вроде spOptionsValue.Children[loopIndex - 3] = Brushes.Red;, я получаю сообщение об ошибке компилятора «Невозможно неявно преобразовать тип System.Windows.Media.SolidColorBrush в System.Windows.UIElement. Я также безуспешно пытался обработать фон в этом выражении. Буду признателен за любые советы!


person ScottS    schedule 08.07.2018    source источник


Ответы (1)


Пытаться

((Control)spOptionsValue.Children[loopIndex - 3]).Background = Brushes.Red

Приведение необходимо, так как UIElement не имеет свойства Background.

Что касается фокуса, вы должны использовать:

((Control)spOptionsValue.Children[loopIndex - 3]).Focus();
person FrankM    schedule 08.07.2018