J'ai une boîte de mot de passe, mais j'ai aussi un bloc de texte comme texte de conseil dans le modèle de contrôle. Je voudrais que ceci soit enlevé quand la boîte de mot de passe a une valeur. J'ai essayé ceci ci-dessous mais cela ne fonctionne pas, comment je peux faire ceci?check PasswordBox Value WPF
XAML simplifié:
<PasswordBox Height="20" Name="pwdBox" PasswordChanged="pwdBox_PasswordChanged" Style="{DynamicResource PasswordBoxStyle1}"/>
<Style x:Key="PasswordBoxStyle1" TargetType="{x:Type PasswordBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type PasswordBox}">
<Border x:Name="Border" .. >
<StackPanel ..>
<TextBlock x:Name="LabelTextBlock" ...
Text="Password Label" />
<Grid>
<ScrollViewer x:Name="PART_ContentHost"
Focusable="false"
HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Hidden"/>
<TextBlock x:Name="HintTextBlock"
Focusable="False"
IsHitTestVisible="False"
Opacity="0"
Text="Enter Your Password" />
</Grid>
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
code Derrière:
private void pwdBox_PasswordChanged(object sender, RoutedEventArgs e)
{
if (pwdBox.SecurePassword.Length == 0)
{
HintTextBlock.IsVisible = true;
}
else
{
HintTextBlock.IsVisible = false;
}
}
Il dit que le nom 'HintTextBlock n'existe pas dans le contexte actuel'
Quel est le problème avec votre code? –
Pouvez-vous clarifier ce que vous entendez par «ne fonctionne pas»? Avez-vous une erreur de compilation, ne disparaît-elle pas correctement, etc? – Rachel
Il dit que le nom 'HintTextBlock n'existe pas dans le contexte actuel - désolé je suis nouveau à wpf. –