He intentado crear un cuadro de texto con una sugerencia que se muestra mientras está vacío. Tengo problemas para configurar el texto de sugerencia dentro de un estilo.WPF Vinculación de la propiedad primaria dentro del elemento anidado usando el estilo
Para ser precisos, esto funciona (es decir, se une correctamente):
<TextBox Tag="hint text">
<TextBox.Background>
<VisualBrush Stretch="None">
<VisualBrush.Visual>
<TextBlock Text="{Binding Tag, RelativeSource={RelativeSource AncestorType=TextBox}}" FontStyle="Italic" Foreground="LightGray" />
</VisualBrush.Visual>
</VisualBrush>
</TextBox.Background>
</TextBox>
pero, cuando lo muevo al estilo, no es así:
<Style TargetType="TextBox" x:Key="stlHintbox">
<Style.Triggers>
<DataTrigger Binding="{Binding Text, RelativeSource={RelativeSource Mode=Self}}" Value="">
<Setter Property="Background">
<Setter.Value>
<VisualBrush Stretch="None">
<VisualBrush.Visual>
<TextBlock Tag="inner" Text="{Binding Tag, RelativeSource={RelativeSource AncestorType=TextBox}}"
FontStyle="Italic" Foreground="LightGray" />
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
<TextBox Tag="hint text" Style="{StaticResource stlHintbox}" />
Entonces, ¿cuál es el truco? ¿Cómo puedo vincularme a la propiedad del antepasado desde dentro de un estilo?
Ok, eso realmente tiene sentido ... Pasé por libros demasiado rápido, parece :) – veljkoz