Estoy tratando de configurar un simple TextBox
con texto de marca de agua en el Background
. Mi código se basa en el ejemplo de Philip Patrick's blog.Encuadernación WPF en estilo
Estoy tratando de ajustarlo para que el texto que se muestra en el fondo se recupere de la propiedad ToolTip
en el TextBox
.
Actualmente esto funciona:
<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>
que muestra el texto en el ToolTip
Background
del TextBox
.
Pero si muevo parte del código a un estilo de Recursos de la unión ya no tiene la información de la ToolTip
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}"/>
Algún consejo aquí?
Podría utilizar una plantilla en lugar de un estilo de esta manera puede utilizar {Binding RelativeSource = {} RelativeSource TemplatedParent, Path =} sobre herramientas? –