WPF PasswordBox标签可见性

| 我已经为登录屏幕创建了一个密码箱用户控件。我试图使用水印方法,但是当我尝试使用它们时,我看到的大多数示例都失败了。我切换到仅能通过c#代码操纵标签的可见性。
<Style x:Key=\"{x:Type PasswordBox}\"
       x:Name=\"Style1\"
       BasedOn=\"{StaticResource {x:Type PasswordBox}}\"
       TargetType=\"{x:Type PasswordBox}\">
    <Setter Property=\"Template\">
        <Setter.Value>
            <ControlTemplate TargetType=\"{x:Type PasswordBox}\">
                <Border x:Name=\"TextBoxBorder\" 
                        BorderBrush=\"{TemplateBinding BorderBrush}\" 
                        BorderThickness=\"{TemplateBinding BorderThickness}\"
                        CornerRadius=\"7\">
                    <Border.Background>
                         <LinearGradientBrush StartPoint=\"0,0\" EndPoint=\"2,1\">
                              <GradientStop Color=\"{Binding Path=GradientColorStart}\" 
                                            Offset=\"0\"/>
                              <GradientStop Color=\"{Binding Path=GradientColorEnd}\" 
                                            Offset=\"1\"/>
                         </LinearGradientBrush>
                    </Border.Background>
                    <Grid>
                        <Label x:Name=\"TextPrompt\" 
                               Content=\"Password\" 
                               Focusable=\"False\" 
                               FontSize=\"15\"
                               Foreground=\"Green\"
                               Visibility=\"Visible\" />
                        <ScrollViewer x:Name=\"PART_ContentHost\"  Margin=\"0\" SnapsToDevicePixels=\"{TemplateBinding SnapsToDevicePixels}\" />
                    </Grid> 
                 </Border>
                 <ControlTemplate.Triggers>
                     <Trigger Property=\"IsFocused\" Value=\"True\">
                         <Setter Property=\"Foreground\"
                                 Value=\"{Binding Path=OnFocusTextColor}\" />
                         <Setter Property=\"FontWeight\"
                                 Value=\"{Binding Path=OnFocusFontWeight}\" />
                         <Setter Property=\"FontStyle\"
                                 Value=\"{Binding Path=OnFocusFontStyle}\" />
                    </Trigger>
                </ControlTemplate.Triggers>
            <!--
                <ControlTemplate.Triggers>
                    <MultiTrigger>
                        <MultiTrigger.Conditions>
                            <Condition Property=\"IsFocused\" Value=\"False\"/>
                            <Condition Property=\"Password\" Value=\"\"/>
                        </MultiTrigger.Conditions>
                        <Setter Property=\"Visibility\"
                                TargetName=\"TextPrompt
                                Value=\"Visible\"/>
                    </MultiTrigger>
                    <Trigger Property=\"IsFocused\" Value=\"True\">
                        <Setter Property=\"Foreground\" Value=\"{Binding Path=OnFocusTextColor}\" />
                        <Setter Property=\"FontWeight\" Value=\"{Binding Path=OnFocusFontWeight}\" />
                        <Setter Property=\"FontStyle\" Value=\"{Binding Path=OnFocusFontStyle}\" />
                    </Trigger>
                    <Trigger Property=\"IsEnabled\" Value=\"False\">
                        <Setter Property=\"Foreground\" Value=\"DimGray\" />
                    </Trigger> 
                </ControlTemplate.Triggers>
             -->
            </ControlTemplate> 
        </Setter.Value>
    </Setter>
控件代码
<PasswordBox x:Name=\"PasswordTest\"
    FontSize=\"15\"
    Padding=\"{Binding Path=TextPadding}\"
    Tag=\"{Binding Path=TextValue}\"
    PasswordChanged=\"PasswordTest_PasswordChanged\">
</PasswordBox>
#2ѭ的C#
private void PasswordTest_PasswordChanged(object sender, RoutedEventArgs e)
{

}
我尝试访问标签,但不确定如何正确操作。我尝试将发件人解析为密码箱,就像其他示例使用水印一样,但是我无法访问password属性。     
已邀请:
您需要在模板中找到它:
Label textPrompt = null;
if (sender is PasswordBox && ((PasswordBox)sender).Template != null)
    textPrompt = ((PasswordBox)sender).Template.FindName(\"TextPrompt\", (PasswordBox)sender) as Label;
    

要回复问题请先登录注册