validation - WPF Custom TextBox ErrorTemplate -


i have custom autocompletetextbox class inherits textbox. works fine, except showing validation error, i.e. red border around control.

here it's style generic.xaml.

    <setter property="background" value="{dynamicresource {x:static systemcolors.windowbrushkey}}" />     <setter property="foreground" value="{dynamicresource {x:static systemcolors.controltextbrushkey}}" />     <setter property="borderbrush" value="{dynamicresource {x:static systemcolors.controldarkbrushkey}}" />     <setter property="borderthickness" value="1" />     <setter property="horizontalcontentalignment" value="left" />     <setter property="padding" value="2" />      <setter property="template">         <setter.value>             <controltemplate targettype="{x:type local:autocompletetextbox}">                 <grid>                     <border x:name="part_border" snapstodevicepixels="true" background="{templatebinding background}" borderbrush="{templatebinding borderbrush}" borderthickness="{templatebinding borderthickness}">                         <scrollviewer x:name="part_contenthost" snapstodevicepixels="{templatebinding snapstodevicepixels}" />                     </border>                     <popup x:name="part_popup" staysopen="false">                         <listbox x:name="part_listbox" horizontalcontentalignment="stretch" />                     </popup>                 </grid>                 <controltemplate.triggers>                     <trigger property="isenabled" value="false">                         <setter property="background" targetname="part_border" value="{dynamicresource {x:static systemcolors.controlbrushkey}}" />                         <setter property="foreground" value="{dynamicresource {x:static systemcolors.graytextbrushkey}}" />                     </trigger>                     <trigger property="isreadonly" value="true">                         <setter property="foreground" value="{dynamicresource {x:static systemcolors.graytextbrushkey}}" />                     </trigger>                 </controltemplate.triggers>             </controltemplate>         </setter.value>     </setter> </style> 

i've checked snoop utility , found no red border. i've reviewed wpf's generic.xaml aero.normal.xaml and, honest, have no idea draws red validation border around invalid textbox.

i know similar questions assed before, reviwed answers , non of them helped.

you find default errortemplate in validation.cs source code:

public static class validation {      /// <summary>     ///     template used generate validation error feedback on adornerlayer.  default     ///     template is:     /// <code>     ///     <border borderthickness="1" borderbrush="red">     ///        <adornedelementplaceholder>     ///     </adornedelementplaceholder></border>     /// </code>     /// </summary>     public static readonly dependencyproperty errortemplateproperty =             dependencyproperty.registerattached("errortemplate",                         typeof(controltemplate), typeof(validation),                         new frameworkpropertymetadata(                             createdefaulterrortemplate(),                             frameworkpropertymetadataoptions.notdatabindable,                             new propertychangedcallback(onerrortemplatechanged)));       private static controltemplate createdefaulterrortemplate()     {         controltemplate defaulttemplate = new controltemplate(typeof(control));          //<border borderthickness="1" borderbrush="red">         //        <adornedelementplaceholder>         //</adornedelementplaceholder></border>          frameworkelementfactory border = new frameworkelementfactory(typeof(border), "border");         border.setvalue(border.borderbrushproperty, brushes.red);         border.setvalue(border.borderthicknessproperty, new thickness(1));          frameworkelementfactory adornedelementplaceholder = new frameworkelementfactory(typeof(adornedelementplaceholder), "placeholder");          border.appendchild(adornedelementplaceholder);          defaulttemplate.visualtree = border;         defaulttemplate.seal();          return defaulttemplate;     }      ... } 

if want remove set validation.errortemplate attached property null.

<textbox validation.errortemplate="{x:null}" /> 

Comments

Popular posts from this blog

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

html - How to style widget with post count different than without post count -

url rewriting - How to redirect a http POST with urlrewritefilter -