Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# materialdesigninxaml-文本框验证文本与另一个文本框重叠_C#_Wpf_Xaml_Material Design In Xaml - Fatal编程技术网

C# materialdesigninxaml-文本框验证文本与另一个文本框重叠

C# materialdesigninxaml-文本框验证文本与另一个文本框重叠,c#,wpf,xaml,material-design-in-xaml,C#,Wpf,Xaml,Material Design In Xaml,我试图做一个简单的登录表单卡,里面有用户名的文本框和密码的密码框。我添加了验证规则(如materialdesigninxaml的演示应用程序所示),但问题是验证消息与密码框重叠 我曾尝试为所有文本框元素添加底部填充,但没有效果。我能想到的唯一解决方案是将顶部填充添加到底部元素,但我不喜欢这种解决方案,因为它会弄乱我的布局 用户控制: 验证规则: public类NotEmptyValidationRule:ValidationRule { 公共覆盖验证结果验证(对象值,CultureInfo

我试图做一个简单的登录表单卡,里面有用户名的文本框和密码的密码框。我添加了验证规则(如materialdesigninxaml的演示应用程序所示),但问题是验证消息与密码框重叠

我曾尝试为所有文本框元素添加底部填充,但没有效果。我能想到的唯一解决方案是将顶部填充添加到底部元素,但我不喜欢这种解决方案,因为它会弄乱我的布局

用户控制:


验证规则:

public类NotEmptyValidationRule:ValidationRule
{
公共覆盖验证结果验证(对象值,CultureInfo CultureInfo)
{
返回字符串.IsNullOrWhiteSpace((值??).ToString()
?新的ValidationResult(错误,“需要字段”)
:ValidationResult.ValidResult;
}
}

本质上,我想要的是为这些验证消息保留空间,而不是在文本框下面的元素上显示它们,只需对代码进行最小的修改(我不想手动为每个元素添加填充/边距).

您可以在
App.xaml
中创建一个全局
样式
,在该样式中为所有
文本框
提供一些底部边距:

<Style TargetType="TextBox" BasedOn="{StaticResource MaterialDesignTextBox}">
    <Setter Property="Margin" Value="0,0,0,15" />
</Style>

选择弹出选项时,可以更改验证消息的位置

<Style TargetType="TextBox" BasedOn="{StaticResource MaterialDesignTextBox}">
    <Setter Property="materialDesign:ValidationAssist.UsePopup" Value="True" />
    <Setter Property="materialDesign:ValidationAssist.PopupPlacement" Value="Center" />
</Style>

谢谢,伙计,这正是我一直在寻找的解决方案!