Mit einem VisualBrush ist es möglich Text als Hintergrund in ein Control zu malen. Mit hilfe eines Triggers lassen sich damit dem Benutzer wichtige Informationen anzeigen.
Wurde noch kein Text in die TextBox eingeben kann man Zusatzinformation für den Benutzer angeben. Hier z.B. das es sich um ein Pflichtfeld handelt.

Sobald ein Zeichen eingiebt, wird über den Trigger der Hintergrund (VisualBrush mit Text) wieder ausgeblendet.

| Xaml |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
<Window x:Class="WpfApplication1.Window11"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window11" Height="150" Width="300">
<Window.Resources>
<VisualBrush
x:Key="TextBlockBrush"
Stretch="None"
TileMode="None" Opacity="0.4"
AlignmentX="Left"
>
<VisualBrush.Visual>
<TextBlock
FontWeight="Bold"
FontStyle="Italic"
Text="Pflichtfeld"
/>
</VisualBrush.Visual>
</VisualBrush>
<Style
TargetType="{x:Type TextBox}"
>
<Style.Triggers>
<Trigger
Property="Text"
Value="{x:Null}"
>
<Setter
Property="Background"
Value="{StaticResource TextBlockBrush}"
/>
</Trigger>
<Trigger
Property="Text"
Value=""
>
<Setter
Property="Background"
Value="{StaticResource TextBlockBrush}"
/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid >
<StackPanel
Orientation="Horizontal"
>
<Label
Margin="10"
Content="Seriennummer:"
HorizontalAlignment="Center"
VerticalAlignment="Center"
/>
<TextBox
Width="160"
HorizontalAlignment="Center"
VerticalAlignment="Center"
/>
</StackPanel>
</Grid>
</Window>
|