gpt4 book ai didi

c# - WPF ComboBox BorderBrush 不会改变

转载 作者:行者123 更新时间:2023-11-30 23:20:25 31 4
gpt4 key购买 nike

我正在为数据库连接构建一个登录屏幕。现在,我正在对表单进行数据验证,并想在验证失败的字段上设置红色边框。这在 TextBoxes 和 PasswordBoxes 上完美运行,但我无法让它在 ComboBox 上运行。

我查看了不同的线程,发现有人按照我尝试过的方式使它工作,但无论出于何种原因,它在我的设置中不起作用。

我现在如何设置边框:
(注释掉是我试图查看是否可以得到任何结果的另一种方法。)

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 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>用我知道的名字标记任何我需要突出显示以进行验证的东西。

我所要做的就是将边框元素传递给原帖中定义的函数 activateValidationErrorHighlight。

关于c# - WPF ComboBox BorderBrush 不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39758302/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com