我正在开发一个WPF应用程序,它显示来自加速度计的不断更新的值(X,Y,Z)。当我使用XAML修改窗口或甚至只是在设计器中查看窗口时,它会显示数据的实时流不断更新,就像程序正在运行一样。或者说,因为该程序正在运行(不知何故 - 我不知道如何)。停止Visual Studio在设计时显示实时设备数据?
漂亮,因为这是,它导致以下问题。当我真的执行程序时,我从设备中获得全部零。似乎Visual Studio正在使用这些数据,并且不会让它进入我的窗口。为了使它停止,我必须
1. activate a different file in the editor (or just close the .xaml file), then
2. close and reopen visual studio.
有没有更好的方法来保持Visual Studio做到这一点?
编辑 基于由SLaKs提供的答案,我已经添加了以下内容:
我现在检查DesignerProperties.GetIsInDesignMode(本)的价值的建议,但不同的问题,现在庄稼向上。我的主窗口的构造函数现在看起来是这样的:
public MainWindow()
{
InitializeComponent();
var dc = this.TopGrid.DataContext as RawAccelStream_ViewModel;
if (DesignerProperties.GetIsInDesignMode(this) == false)
base.Background = Brushes.Bisque;
else
{
base.Background = Brushes.Blue;
dc.Dispose();
}
}
新的问题是,这种代码,运行应用程序时窗口的背景出现浓汤,但没有颜色的变化发生在所有的设计器视图。而设计器视图仍然显示值并仍然破坏窗口的应用程序实例。
如果那是真的,什么?设置DataContext = null?并在MainWindow.xaml.cs文件中执行此操作? – philologon 2014-11-04 22:36:55
设计人员将只创建您在XAML中创建的控件实例;不是该文件的类。 – SLaks 2014-11-04 22:49:42
如果这是真的,只需不要运行困扰你的代码。或者,您可以使用虚假的数据源,以便设计师看起来不错。 – SLaks 2014-11-04 22:50:13