C# 创建不干扰WPF窗口的独立线程MessageBox的最佳方法?
我有一个窗口,其中的字段允许用户填写值,但当我显示MessageBox以告诉用户某些字段无效时,它会阻止用户从MessageBox更改为窗口 我如何创建MessageBox,以便在拥有MessageBox的同时可以访问窗口?我应该多线程吗?有没有办法使MessageBox这样的对象不会锁定应用程序的其余部分 代码:C# 创建不干扰WPF窗口的独立线程MessageBox的最佳方法?,c#,wpf,messagebox,C#,Wpf,Messagebox,我有一个窗口,其中的字段允许用户填写值,但当我显示MessageBox以告诉用户某些字段无效时,它会阻止用户从MessageBox更改为窗口 我如何创建MessageBox,以便在拥有MessageBox的同时可以访问窗口?我应该多线程吗?有没有办法使MessageBox这样的对象不会锁定应用程序的其余部分 代码: MessageBox与显示它的表单是模态的 作为一种解决方法,您可以始终显示一个单独的wpf表单。或者,您可以在当前所在的表单上显示错误文本。消息框与显示它的表单是模态的 作为一种解
MessageBox与显示它的表单是模态的
作为一种解决方法,您可以始终显示一个单独的wpf表单。或者,您可以在当前所在的表单上显示错误文本。消息框与显示它的表单是模态的
作为一种解决方法,您可以始终显示一个单独的wpf表单。或者,您可以在当前所在的表单上显示错误文本。在这种情况下,在wpf表单上显示文本似乎更好。我不确定带有浮动验证messagebox的UI是否非常直观
更好的做法是查看wpf支持的即时验证内容,突出显示需要输入的必需项目。在这种情况下,在wpf表单上显示文本可能会更好。我不确定带有浮动验证messagebox的UI是否非常直观
更好的做法是查看wpf支持的即时验证内容,在需要输入的地方突出显示所需的项目。您可以在标记底部定义一个单独的网格,并通过将可见性设置为visible向用户显示带有消息的网格。然后捕捉窗口的鼠标点击,如果显示消息的网格可见,则将可见性设置为隐藏。下面是弹出式网格的示例
<Grid x:Name="MyMessageBox" Visibility="Hidden">
<Grid Background="Black" Opacity="0.5"/>
<Border
MinWidth="250"
Background="Orange"
BorderBrush="Black"
BorderThickness="1"
CornerRadius="0,55,0,55"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<StackPanel>
<TextBlock Margin="5" Text="" Name="MessageText" FontWeight="Bold" FontFamily="Cambria" />
</StackPanel>
</StackPanel>
</Border>
</Grid>
您可以在标记的底部定义一个单独的网格,并通过将可见性设置为visible向用户显示带有消息的网格。然后捕捉窗口的鼠标点击,如果显示消息的网格可见,则将可见性设置为隐藏。下面是弹出式网格的示例
<Grid x:Name="MyMessageBox" Visibility="Hidden">
<Grid Background="Black" Opacity="0.5"/>
<Border
MinWidth="250"
Background="Orange"
BorderBrush="Black"
BorderThickness="1"
CornerRadius="0,55,0,55"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<StackPanel>
<TextBlock Margin="5" Text="" Name="MessageText" FontWeight="Bold" FontFamily="Cambria" />
</StackPanel>
</StackPanel>
</Border>
</Grid>
项目已经高亮显示,但高亮显示不会告诉用户该字段无效的原因。工具提示已用于描述字段的用途。项目已高亮显示,但高亮显示不会告诉用户字段无效的原因。工具提示已经被用来描述该字段的用途。我最终这样做了,这允许我将消息作为状态窗口推送到单独的WPF窗口。我最终这样做了,这允许我将消息作为状态窗口推送到单独的WPF窗口。