样式 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】:

AutocompleteBoxTextBoxSelectionAdapterDropDownTogglePopup 组成。 您所描述的错误状态样式在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 错误指示器的主要内容,如果未能解决你的问题,请参考以下文章

WPF toolkit AutoCompleteBox

输入3个字符后如何在autocompletebox中建议?

WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配

对于在相邻显示器上显示其边框的最大化样式窗口,我能做些啥?

ios------进度轮

QListView 放置指示器样式