在我的wpf应用程序中,我有一些按钮,如果我在调试中,我希望它能启用我的意思是如果我通过F5运行我的应用程序。
如果我不在调试中,我希望它被禁用,我的意思是ctrl + F5
XAML:
<Button x:Name="ArrowRight" IsEnabled="False"/>
代码背后:
public MyClass()
{
InitializeComponent();
#if DEBUG
ArrowRight.IsEnabled = true;
#endif
}
但是如果我运行F5甚至是ctrl + F5
,则始终启用该按钮所以我试着改变这个:
到&#34;发布&#34;但如果我构建我的解决方案,它会告诉我我错过了一些Locator.dll
如何正确使用#if Debug
?
答案 0 :(得分:2)
F5 或 Ctrl + F5 独立于调试/发布模式构建。
在顶部的下拉列表中,您可以选择“调试”或“发布”配置。在调试模式下,定义了“DEBUG”符号,因此#if
有效(内部代码已编译)。在发布模式下,它未定义,因此您的代码行不会被编译。它甚至显得灰暗。
F5和Ctrl + F5都可以在选择的任何配置下运行:F5只是附加调试器而Ctrl + F5没有。您可能会看到警告您正在尝试调试以发布模式构建的应用程序。
另请参阅this question以检测调试器。
答案 1 :(得分:0)
你正确使用调试指令;实施很好。
更正您在发布版本中遇到的“Locator.dll”问题,您可以确认。
执行F5
或CTRL+F5
没有限制构建 - 如果您在构建之后运行时尝试连接调试器无关紧要,那么您仍然以Debug方式构建。
或者,您可以在此处反转逻辑并查看是否适用。
默认情况下启用按钮。
<Button x:Name="ArrowRight" IsEnabled="True"/>
使用debug指令
时禁用它public MyClass()
{
InitializeComponent();
#if DEBUG
ArrowRight.IsEnabled = false;
#endif
}