我有一个密码箱
<PasswordBox
MaxLength="12"
PlaceholderText="Password"
Foreground="Black"
Background="#eeeeee"/>
我想改变PlaceholderForeground
的颜色,就像我在一个普通的TextBox
上一样,但没有这样的属性,在互联网上搜索后,我发现没有解决方案,A为我工作B我明白,所有的xaml代码都太长了,样式和资源都有50行,对于这样一个简单的属性更改,我不知道为什么WPF必须如此过于复杂,没有理由
有没有人能提出一个解决方案,可能不是50行xaml代码,只是改变PasswordBox中占位符文本的前景色。
1条答案
按热度按时间polkgigr1#
我想到的最简单的方法是创建一个派生自
PasswordBox
的自定义控件。你只需要覆盖OnRender
:1.调用
base.OnRender
1.检查密码框中是否没有文本,并且它没有焦点
1.创建一个
FormattedText
对象,可能像这样:1.将其绘制在内容的左上角:
如果你不想要任何额外的代码,我知道的唯一方法是使用第三方库,例如。MahApps.Metro。
您还可以为内置的
PasswordBox
创建自定义行为,尽管它并不比自定义控件简单多少。