我正在构建数据库连接的登录屏幕。现在,我正在对表单进行数据验证,并且希望在验证失败的字段上设置红色边框。这适用于TextBoxes和PasswordBoxes,但我无法使它在ComboBox上工作。WPF组合框BorderBrush不会更改
我环顾了不同的线程,发现有人以我尝试过的方式工作,但无论出于何种原因,它不适用于我的设置。
如何我设置的边界现在:
(注释掉是另一种方法,我是想看看我是否能得到任何结果。)
private void activateValidationErrorHighlight(Control uiElelment)
{
uiElelment.SetValue(Border.BorderBrushProperty, new SolidColorBrush(Color.FromArgb(0xFF, 0xD0, 0x50, 0x50)));
//uiElelment.BorderBrush = new SolidColorBrush(Color.FromArgb(0xFF, 0xD0, 0x50, 0x50));
}
我也试着编辑它直接像这myComboBox.BorderBrush = Brushes.Red;
XAML对于ComboBox:
<ComboBox Name="cb_DevelopmentServer" Text="Server"
Grid.Column="0" Grid.Row="4"
Margin="5" Padding="5"
FontSize="16"
IsEditable="True">
<ComboBox.ItemsSource>
<CompositeCollection>
<CollectionContainer Collection="{Binding Path=ComboTest}" />
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
运行t 1中以一看LiveVisualTree我发现在元素本身中有一个BorderBrush属性被设置,但是在ComboBox中没有设置Border元素。
如果可能的话,我想这样做,而不必爬过VisualTreeHelper。
我对WPF和XAML比较陌生,所以我不会太惊讶地发现在应用程序中有一个问题导致了这个问题。如果你认为这是可能的,你能否告诉我我可能在哪里看?