PasswordBox 控件样式设置提示

Ee341382.0b2c798e-86c6-4ea2-a8a6-5cf1f12be1e2(zh-cn,Expression.40).png

可以使用内置的 PasswordBox 控件模板创建自定义的 PasswordBox 模板。默认情况下, PasswordBox 控件如下所示:

Ee341382.4e1556e5-03f0-4881-8283-8281cb11c978(zh-cn,Expression.40).png

PasswordBox 模板的部件

PasswordBox 控件具有一个部件: ContentElement 部件。此部件是必需的。

tip note提示:

若要查看模板的部件,请在修改模板的同时打开“部件”面板。

PasswordBox 控件的状态

默认情况下, PasswordBox 控件的状态可以是“CommonStates”状态组中的以下四种状态之一,在修改 PasswordBox 模板时,您可以在“状态”面板中查看这些状态:

状态名称 描述

Normal

PasswordBox 控件没有交互时的外观。

MouseOver

用户将指针移到 PasswordBox 控件上时该控件的外观。

Disabled

IsEnabled 属性设置为 False 时, PasswordBox 控件的外观。

PasswordBox 控件所处的状态可以为“FocusStates”状态组中的以下两种状态之一:

状态名称 描述

Unfocused

控件上没有键盘焦点时 PasswordBox 控件的外观。

Focused

PasswordBox 控件具有键盘焦点时的外观。例如,用户可能会按 Tab 键来循环选择应用程序中的各个对象,直至键盘焦点位于 PasswordBox 控件上为止。

PasswordBox 控件所处的状态可以为“ValidationStates”状态组中的以下三种状态之一:

状态名称 描述

Valid

控件有效时 PasswordBox 控件的外观。

InvalidUnfocused

PasswordBox 控件无效且没有键盘焦点时的外观。

InvalidFocused

控件无效但有键盘焦点时 PasswordBox 控件的外观。

tip note提示:

状态组包含属于同一逻辑类别并且无法同时显示的可视状态。例如,“CommonStates”组包含的状态和用户与输入设备(例如鼠标)的交互相关。一次只能显示状态组中的一种状态,但一个状态组中的状态可与另一个状态组中的状态同时显示。

当您选择状态时,状态记录功能将启用,并且将为该状态记录您进行的任何更改。若要禁用状态记录功能,请单击“记录模式指示器”Ee341382.0dcc6415-6d4e-4fcf-a9a3-eb4664cb6cbc(zh-cn,Expression.40).png,或者在“状态”面板中选择“Base”。若要在两个独立状态处于活动状态时修改控件的外观,您可以固定一个状态组中状态的预览,同时修改另一个状态组中的状态。

模板绑定

可以对“Background”、“BorderBrush”、“Foreground”、“BorderThickness”或“Padding”属性进行模板绑定。有关详细信息,请参阅在模板中使用对象属性

将对象转换为 PasswordBox 控件

以下图像是 PasswordBox 的设计综合 (comp):

PasswordBox

本例在以下过程的步骤 2 中使用 XAML 代码,此过程对应前面的图形,通过使用 PasswordBox 控件模板来创建自定义密码框。

  1. 打开新的 Microsoft Silverlight 项目。在“代码”视图中,找到以下代码,然后删除结尾斜线标记 (/)。

    <Grid x:Name="LayoutRoot" Background="White"/>
    
  2. 复制以下代码,然后将它们粘贴到您的新项目中(粘贴到您在步骤 1 中找到的代码之后)。

    <Grid Height="20" Width="120">
    <Rectangle Fill="#FF333333" RadiusX="5" RadiusY="5"/>
    <TextBlock Margin="5,0" Foreground="White" Text="*****" VerticalAlignment="Center"/>
    </Grid>
    
  3. 在您刚粘贴的代码之后添加一个 Grid 结束标记 (</Grid>)。

  4. 在“对象和时间线”面板中,右键单击“Grid”,然后单击“构成控件”。在“构成控件”对话框中,单击“PasswordBox”,然后单击“确定”。

  5. 在“对象和时间线”面板中,单击“Grid”。在“部件”面板中,双击“ContentElement”。

  6. 复制“TextBlock”的“VerticalAlignment”和“Margin”属性,然后将它们粘贴到“ContentElement”中。在“对象和时间线”面板中单击“ContentElement”,然后在“属性”面板中执行下列操作:

    • **VerticalAlignment   ** 设置为“Center”。

    • **Margin   ** 设置为以下值:

      • Left   5

      • Right   5

      • Top   0

      • Bottom   0

  7. 在“对象和时间线”面板中,右键单击“TextBlock”,然后单击 Delete。

  8. 在“对象和时间线”面板中,单击“模板”,然后单击“返回到范围”Ee341382.55844eb3-ed98-4f20-aa66-a6f5b23eeb2b(zh-cn,Expression.40).png。在“对象和时间线”面板中选择“Style”,然后在“属性”面板的“画笔”类别中,将“Foreground”设置为 #FFFFFFFF

  9. 在“对象和时间线”面板中,单击“返回到范围”Ee341382.55844eb3-ed98-4f20-aa66-a6f5b23eeb2b(zh-cn,Expression.40).png

  10. 在“属性”面板的“公共属性”类别中的“Password”文本框内,键入 abcde

  11. 在“属性”面板的“文本”类别中,单击“显示高级属性”。在“PasswordChar”文本框中,键入 *

  12. 按 Ctrl+Shift+B 生成项目,然后按 F5 测试项目。

有关向其他 PasswordBox 对象应用新的 PasswordBox 模板的信息,请参阅应用或删除资源

引用

您可以在 MSDN 上的 Silverlight Control Gallery Ee341382.xtlink_newWindow(zh-cn,Expression.40).png(Silverlight 控件库)中找到关于 Silverlight PasswordBox 控件的属性和事件的详细信息。

另请参阅

概念

常用 Silverlight 控件的样式提示
设置支持模板的控件的样式
绘制文本

Microsoft Corporation 版权所有 ⓒ 2011。保留所有权利。