【问题标题】:Style AutoCompleteBox Error Indicator样式 AutoCompleteBox 错误指示器
【发布时间】:2012-08-14 13:48:22
【问题描述】:

是否可以更改 WPF Toolkit 中的 AutoCompleteBox 出现错误时出现的红色矩形的样式?我成功地在 TextBox 上更改了它,只是为控件创建了一个新样式,但无论我对 AutoCompleteBox 做什么,我都无法摆脱那个红色矩形。即使我删除了这样的样式:

<input:AutocompleteBox Style="{x:Null}"/>

我看不到控件,但是如果我在控件绑定上出现错误,它仍然会显示一条红线!我真正想要的是 AutoCompleteBox 使用内部 TextBox 验证指示器,但首先我需要删除那个外部矩形。关于如何做到这一点或创建红色矩形的任何想法?

【问题讨论】:

    标签: wpf xaml wpftoolkit autocompletebox


    【解决方案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 源代码上发生了什么,但到目前为止没有成功:/
    猜你喜欢
    • 2017-05-23
    • 2013-06-14
    • 1970-01-01
    • 2013-11-26
    • 2012-07-06
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多