Im assez Noob dans WPF mais im essayant sérieusement de le maîtriser: pWPF Étiquette à textBox
Ive essayé de créer un contrôle où une étiquette/TextBlock est affiché, mais une fois que l'utilisateur passe/clique sur le contrôle, un La zone de texte est affichée à la place afin que la valeur puisse être modifiée. Ce que j'ai essayé essaye de lier la propriété Visible à un booléen dans le code-behind, qui est mis à jour en utilisant des délégués pour MouseOver et MouseLeave et Got/LostFocus, mais cela n'a pas fonctionné. Aussi j'ai essayé d'employer un style simple qui a lié aussi la propriété Visible au booléen dans le code-derrière ... n'a pas fonctionné non plus. En fin de compte, je suivais ce que WPF: Label to TextBox when selected a suggéré, en utilisant un ControlTemplate et un déclencheur, comme celui-ci:
<Style x:Key="TransformerBox" TargetType="{x:Type TextBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Visibility" Value="Visible"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Et:
<Canvas x:Name="CnvCantidad" Grid.Row="2" Grid.Column="1">
<TextBox HorizontalAlignment="Center" VerticalAlignment="Center" Canvas.Left="16" Canvas.Top="8" Width="16"
x:Name="TxtCantidad" Style="{StaticResource TransformerBox}" Height="23" Visibility="Visible"/>
<Label HorizontalAlignment="Center" VerticalAlignment="Center" Content="0" Canvas.Left="16" Canvas.Top="6"
x:Name="LblCantidad"/>
</Canvas>
Mais dans tous les cas expliqué précédemment, la zone de texte n'a jamais été visible, peu importe ce que :/
Comment est-ce que je devrais créer le ControlTemplate afin que le TextBox soit visible lorsque l'utilisateur survole le Label/TextBlock?
Votre style l'a fait! Merci beaucoup :) – Machinarius