System.Windows.MessageBox:是按钮丢失了

3
在我的WPF应用程序(.NET 3.5)中,我可以这样创建一个MessageBox:
if (System.Windows.MessageBox.Show("Eine neue Version von Qualisoft steht zum Download bereit. Möchten Sie diese installieren?", "Neue Qualisoft Version", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
{
...
}

我的一个客户得到了这个结果:

我在大约10个系统上进行了测试,但无法重现此结果。

是否有人知道为什么“是”按钮会消失?


以上提到的代码无法产生图片中显示的输出。除非还有其他代码导致此问题。如果您使用上述代码,它肯定会正常工作。 - krafty
2
也许他在开玩笑 ;) - daniherculano
6
无法复制到这里。您在代码片段中的文本与图像中的文本不同,这使我怀疑错误出现在其他地方。您能否发布实际的不起作用的代码? - Avner Shahar-Kashtan
2
那段代码无法生成完全相同的对话框(即使只是为了翻译)。请提供真实的代码,而不是示例! - Patrick Hofman
抱歉,我修改了代码。我使用的是.NET 3.5,并安装了GER语言包。 - schini
显示剩余5条评论
2个回答

3

这个问题并非(直接)与.NET有关。实际上,WPF将调用重定向到操作系统,具体而言是通过这个调用

UnsafeNativeMethods.MessageBox(...)

可能会出现其他问题。这可能是由于语言包或其他原因引起的,但我怀疑这点。此外,视频卡驱动程序有时会弄乱UI控件。现在很难重现,所以没有太多线索。

您需要检查可能存在问题的部分。从安全模式开始检查是否仍然存在该问题。尝试创建一个只有此调用的新默认应用程序。行为是否仍然相同?然后继续。否则,您的代码中可能会导致此问题。


3
你的客户在恶作剧,他给你发了一张经过ps处理的截图。可能是在暗示他已经厌倦了不断处理新版本。就是这样。
本地的MessageBox() winapi函数没有选项可以仅显示“否”按钮。
恶作剧回敬一下,建议他将机器拖到四楼窗户边并让它掉下去。并提醒他:先打开窗户完全是可选的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接