2014-11-04 93 views
1

我正在開發一個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(); 
    } 
    } 

新的問題是,這種代碼,運行應用程序時窗口的背景出現濃湯,但沒有顏色的變化發生在所有的設計器視圖。而設計器視圖仍然顯示值並仍然破壞窗口的應用程序實例。

回答

0

當您打開在設計器中使用控件的XAML文件時,設計器將創建該控件的實際實例。

您應該修改控件以檢查它是否在設計器中運行並顯示假數據或其他內容。

檢查DesignerProperties.GetIsInDesignMode(this)

+0

如果那是真的,什麼?設置DataContext = null?並在MainWindow.xaml.cs文件中執行此操作? – philologon 2014-11-04 22:36:55

+0

設計人員將只創建您在XAML中創建的控件實例;不是該文件的類。 – SLaks 2014-11-04 22:49:42

+0

如果這是真的,只需不要運行困擾你的代碼。或者,您可以使用虛假的數據源,以便設計師看起來不錯。 – SLaks 2014-11-04 22:50:13

相關問題