C# WPF组合框边框刷赢得';不变
我正在为数据库连接构建登录屏幕。现在,我正在表单上进行数据验证,并希望在验证失败的字段上设置一个红色边框。这在文本框和密码框上非常有效,但我无法让它在组合框上工作 我查看了不同的线程,发现有人用与我尝试过的相同的方式运行它,但无论出于何种原因,它在我的设置中不起作用 我现在如何设置边界:C# WPF组合框边框刷赢得';不变,c#,wpf,xaml,combobox,C#,Wpf,Xaml,Combobox,我正在为数据库连接构建登录屏幕。现在,我正在表单上进行数据验证,并希望在验证失败的字段上设置一个红色边框。这在文本框和密码框上非常有效,但我无法让它在组合框上工作 我查看了不同的线程,发现有人用与我尝试过的相同的方式运行它,但无论出于何种原因,它在我的设置中不起作用 我现在如何设置边界: (注释掉是我尝试的另一种方法,看看是否可以得到任何结果。) 我也尝试过像这样直接编辑它myComboBox.BorderBrush=brusks.Red 组合框的XAML: <ComboBox Name=
(注释掉是我尝试的另一种方法,看看是否可以得到任何结果。) 我也尝试过像这样直接编辑它
myComboBox.BorderBrush=brusks.Red代码>
组合框的XAML:
<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>
在运行时查看LiveVisualTree,我发现在元素本身中设置了BorderBrush属性,但在ComboBox中有一个Border元素没有设置
如果可能的话,我希望这样做而不必绕着VisualTreeHelper爬
我对WPF和XAML还比较陌生,所以当我发现应用程序中的其他地方存在导致这种情况的问题时,我不会感到太惊讶。如果你认为这是可能的,你能告诉我该去哪里找吗?不幸的是,没有人就此回复我,我也无法解决这个问题
以下是我为有同样问题的人所做的:
作为一种解决方法,我在Xaml中去掉所有元素的边框(将厚度设置为0),并在需要突出显示以进行验证的任何内容周围添加一个名为
的标记
我所要做的就是将border元素传递到原始post中定义的函数activateValidationErrorHighlight中
<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>