Laden...

Validation.ErrorTemplate: Eingabe TextBox Hintergrundfarbe setzen

Erstellt von CoderboyPB vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.240 Views
C
CoderboyPB Themenstarter:in
327 Beiträge seit 2008
vor 6 Jahren
Validation.ErrorTemplate: Eingabe TextBox Hintergrundfarbe setzen

Ich habe folgendes ControlTemplate als ErrorTemplate:


<ControlTemplate x:Key="errorTemplate">
            <Grid>
                <Border Background="#33FF0000" BorderBrush="Red" BorderThickness="1">
                    <AdornedElementPlaceholder />
                </Border>
            </Grid>
</ControlTemplate>

Optisch funktioniert das Ganze sogar: Der Hintergrund der Eingabe TextBox wird hellrot, allerdings hat dieser Ansatz einen Haken: Durch den Border Background wird die Eingabe Box verdeckt, heißt, ich bekomme zwar eine optische Validierung, kann nun aber keine Eingabe mehr machen.

Habe schon alles mögliche ausprobiert, aber komme da zu keiner Lösung, egal, was und wie ich es mache, sobald ich Hintergrundfarben setze, verdecken diese die TextBox, und an die TextBox selber komme ich nicht ran, da die Property 'AdornedElement' - entgegen der MSDN - nicht vorhanden ist.

Irgendwelche Lösungsansätze?

5.658 Beiträge seit 2006
vor 6 Jahren

Hi CoderboyPB,

Was du willst, ist wahrscheintlich eher das:


<Grid>
   <Border Background="#33FF0000" BorderBrush="Red" BorderThickness="1" />
   <AdornedElementPlaceholder />
</Grid>

Dann wäre die Border hinter dem Steuerelement angeordnet. Und du müßtest darauf achten, daß das Steuerelement selbst eine transparente Hintergrundfarbe hat.

Aber wenn du nur die Hintergrund- und Randfarbe (oder andere Eigenschaften) eines Steuerelements anpassen willst, reicht ja eigentlich ein Style mit einem Trigger auf Validation.HasError aus.

Weeks of programming can save you hours of planning

C
CoderboyPB Themenstarter:in
327 Beiträge seit 2008
vor 6 Jahren

Danke für deine Antwort,

der erste Vorschlag funktioniert nicht, denn sobald man eine Hintergrundfarbe des Borders setzt, liegt diese ÜBER dem Control.

Aber der Ansatz mit dem Trigger, der funktioniert.

Habe jetzt verstanden: Will ich die Erscheinungsweise des validierten Elements ändern, z.B. mit Zusatz Text oder einem Border dekorieren, dann ErrorTemplate, die Modifizierung des Elements selber aber mittels Trigger.

Dafür macht man ja diese Beispiele, um zu lernen und zu begreifen, und um eben auf solche Hürden zu stoßen, denn nun ist es in meinem Kopf verankert.