Sto provando a impostare un semplice TextBox
con un testo filigrana nello Background
. Il mio codice si basa sull'esempio da Philip Patrick's blog.Rilegatura WPF in stile
Sto provando a modificarlo in modo che il testo visualizzato sullo sfondo venga recuperato dalla proprietà ToolTip
sullo TextBox
.
Attualmente questo funziona:
<TextBox ToolTip="Type a name here...">
<TextBox.Background>
<VisualBrush TileMode="None" Opacity="0.4" Stretch="None" AlignmentX="Left">
<VisualBrush.Visual>
<TextBlock FontStyle="Italic" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TextBox}}, Path=ToolTip}"/>
</VisualBrush.Visual>
</VisualBrush>
</TextBox.Background>
</TextBox>
che visualizza il testo ToolTip
nel Background
del TextBox
.
Ma se mi muovo parte del codice fuori ad uno stile di risorse ottiene il legame non è più il ToolTip
informazioni dal TextBox
:
<Grid>
<Grid.Resources>
<Style x:Key="WatermarkBackground" TargetType="{x:Type TextBox}">
<Setter Property="Background">
<Setter.Value>
<VisualBrush TileMode="None" Opacity="0.4" Stretch="None" AlignmentX="Left">
<VisualBrush.Visual>
<TextBlock FontStyle="Italic" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TextBox}}, Path=ToolTip}"/>
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</Style>
</Grid.Resources>
<TextBox ToolTip="Type your name here..." Style="{StaticResource WatermarkBackground}"/>
Eventuali suggerimenti qui?
Potrebbe utilizzare un modello al posto di uno stile in modo da poter utilizzare {Binding RelativeSource = {} RelativeSource TemplatedParent, Path = ToolTip}? –