Próbowałem utworzyć pole tekstowe z podpowiedzią wyświetlaną, gdy jest pusta. Mam problem z ustawieniem tekstu podpowiedzi w stylu.WPF Powiąż właściwość nadrzędną z elementu zagnieżdżonego, używając stylu
Aby być precyzyjnym, to działa (to znaczy, że wiąże się poprawnie):
<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>
ale kiedy przenieść je do stylu, to nie:
<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}" />
Więc jaki jest haczyk? Jak powiązać właściwość przodka z poziomu stylu?
OK, to naprawdę ma sens ... Zbyt szybko przeszedłem przez książki :) – veljkoz