我正在開發一個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