首页 > 解决方案 > TextBox 与 UI 中的 PasswordBox 不同

问题描述

我正在使用NuGet 的MaterialDesignInXAML ,我的代码如下:

 <Grid >
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <TextBox    Background="Red" Grid.Column="0"  materialDesign:HintAssist.FloatingScale="1" materialDesign:HintAssist.FloatingOffset="0,-25" materialDesign:HintAssist.IsFloating="True"  materialDesign:HintAssist.Hint="User Name"/>
            <PasswordBox Background="Red" Grid.Column="1"  materialDesign:HintAssist.FloatingScale="1" materialDesign:HintAssist.FloatingOffset="0,-25" materialDesign:HintAssist.IsFloating="True"  materialDesign:HintAssist.Hint="Password"/>
</Grid>

但在视图中它看起来不同: 在此处输入图像描述

TextBox 和 PasswordBox 的代码相同,但结果不同,我的问题是如何让 TextBox 和 PasswordBox 看起来一样,(我想继续使用材料设计部分)

标签: wpfxamlmaterial-design

解决方案


当您说“看起来一样”时,您是说您希望密码框的红色背景与文本框的红色背景相匹配吗?还是反过来?

无论哪种方式,问题在于 TextBox 和 PasswordBox 控件的 MaterialDesignInXaml 库控件模板略有不同。这些模板中绑定到 Background 属性的元素是不同的。

您可以随时修改他们的 PasswordBox 模板以满足您的需求: https ://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit/blob/master/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.PasswordBox.xaml

查看 {TemplateBinding Background} 的设置位置,然后从那里获取。

如果您强烈认为他们应该在样式方面匹配,那么为什么不在他们的 GitHub 网站上提出问题呢?


推荐阅读