样式 AutoCompleteBox 错误指示器
Posted
技术标签:
【中文标题】样式 AutoCompleteBox 错误指示器【英文标题】:Style AutoCompleteBox Error Indicator 【发布时间】:2012-08-14 13:48:22 【问题描述】:是否可以更改 WPF Toolkit 中的 AutoCompleteBox 出现错误时出现的红色矩形的样式?我成功地在 TextBox 上更改了它,只是为控件创建了一个新样式,但无论我对 AutoCompleteBox 做什么,我都无法摆脱那个红色矩形。即使我删除了这样的样式:
<input:AutocompleteBox Style="x:Null"/>
我看不到控件,但是如果我在控件绑定上出现错误,它仍然会显示一条红线!我真正想要的是 AutoCompleteBox 使用内部 TextBox 验证指示器,但首先我需要删除那个外部矩形。关于如何做到这一点或创建红色矩形的任何想法?
【问题讨论】:
【参考方案1】:AutocompleteBox
由TextBox
、SelectionAdapter
、DropDownToggle
和Popup
组成。
您所描述的错误状态样式在TextBoxStyle
中定义:
<Style TargetType="controls:AutoCompleteBox">
<Setter Property="IsTabStop" Value="False" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="controls:AutoCompleteBox">
<Grid Margin="TemplateBinding Padding"
Background="TemplateBinding Background">
<TextBox IsTabStop="True" x:Name="Text" Style="TemplateBinding TextBoxStyle" Margin="0" />
...
在出错时更改TextBox
的行为 - 只需更改其样式即可。
【讨论】:
这也正是我所期待的——但它没有奏效。我的文本框在我的新样式中运行良好,但将其设置为 AutoCompleteBox TextBoxStyle 不起作用。文本框获得了新样式,但它并不指示文本框上的错误,而是在文本框之外。似乎自动完成框以某种方式为文本框创建了外边框。这真的很令人沮丧。我正在尝试查找 AutoCompleteBox 源代码上发生了什么,但到目前为止没有成功:/以上是关于样式 AutoCompleteBox 错误指示器的主要内容,如果未能解决你的问题,请参考以下文章