Je suis en train de mettre en place un simple TextBox
avec un texte de filigrane dans le Background
. Mon code est basé sur l'exemple de Philip Patrick's blog.WPF liaison dans le style
J'essaye de l'ajuster de sorte que le texte affiché en arrière-plan soit récupéré de la propriété ToolTip
sur le TextBox
.
Actuellement ceci fonctionne:
<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>
qui affiche le texte ToolTip
dans le Background
du TextBox
.
Mais si je déménage une partie du code vers un style de la liaison des ressources ne reçoit plus l'info ToolTip
de la 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}"/>
Les conseils ici?
Pouvez-vous utiliser un modèle au lieu d'un style de sorte que vous pouvez utiliser {{Binding RelativeSource = RelativeSource TemplatedParent}, Path =} info-bulle? –