gpt4 book ai didi

c# - 有没有办法检查 WPF 当前是否在设计模式下执行?

转载 作者:IT王子 更新时间:2023-10-29 03:32:37 26 4
gpt4 key购买 nike

有谁知道一些可用的全局状态变量,以便我可以检查代码当前是否在设计模式下执行(例如,在 Blend 或 Visual Studio 中)?

它看起来像这样:

//pseudo code:
if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode)
{
...
}

我需要这个的原因是:当我的应用程序在 Expression Blend 中以设计模式显示时,我希望 ViewModel 改为使用“设计客户类”,其中包含设计师可以在设计模式下查看的模拟数据.

但是,当应用程序实际执行时,我当然希望 ViewModel 使用返回真实数据的真实 Customer 类。

目前,我通过让设计师在开始工作之前进入 ViewModel 并将“ApplicationDevelopmentMode.Executing”更改为“ApplicationDevelopmentMode.Designing”来解决此问题:

public CustomersViewModel()
{
_currentApplicationDevelopmentMode = ApplicationDevelopmentMode.Designing;
}

public ObservableCollection<Customer> GetAll
{
get
{
try
{
if (_currentApplicationDevelopmentMode == ApplicationDevelopmentMode.Developing)
{
return Customer.GetAll;
}
else
{
return CustomerDesign.GetAll;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}

最佳答案

我相信您正在寻找GetIsInDesignMode ,它需要一个 DependencyObject。

即。

// 'this' is your UI element
DesignerProperties.GetIsInDesignMode(this);

编辑: 使用 Silverlight/WP7 时,您应该使用 IsInDesignTool因为在 Visual Studio 中 GetIsInDesignMode 有时会返回 false:

DesignerProperties.IsInDesignTool

编辑:最后,为了完整起见,WinRT/Metro/Windows Store 应用程序中的等价物是 DesignModeEnabled :

Windows.ApplicationModel.DesignMode.DesignModeEnabled

关于c# - 有没有办法检查 WPF 当前是否在设计模式下执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/834283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com