PasswordBox のキャレットを非表示または移動する方法はありますか?
4394 次
4 に答える
5
.NET 3.5 SP1 以前では、WPF TextBox/PasswordBox キャレットの色を明確に指定する方法はありません。
ただし、(ハックを介して)ビューからそのキャレットを指定する(またはこの場合は削除する)方法があります。キャレットの色は、TextBox/PasswordBox の背景色の反転色です。したがって、背景色を「透明な黒」にすることができます。これにより、システムが白いキャレット (表示されない) を使用するようになります。
コードは(単純に)次のとおりです。
<PasswordBox Background="#00000000" />
この問題の詳細については、次のリンクを参照してください。
- http://cloudstore.blogspot.com/2008/09/changeing-caret-colour-in-wpf.html
- http://blogs.msdn.com/llobo/archive/2007/02/08/ching-caret-color-in-textbox.aspx
.NET 4.0 では、キャレットがカスタマイズ可能になることに注意してください。
お役に立てれば!
于 2009-06-02T06:17:00.897 に答える
4
次のようなことを試して、PasswordBox で選択を設定できます。
private void SetSelection(PasswordBox passwordBox, int start, int length)
{
passwordBox.GetType()
.GetMethod("Select", BindingFlags.Instance | BindingFlags.NonPublic)
.Invoke(passwordBox, new object[] { start, length });
}
その後、次のように呼び出してカーソル位置を設定します。
// set the cursor position to 2... or lenght of the password
SetSelection( passwordBox1, 2, 0);
// focus the control to update the selection
passwordBox1.Focus();
于 2012-03-20T12:43:54.230 に答える