2014-04-10 35 views
1

我對WPF4/C#/ SDK Surface 2.0有點新鮮。我試圖讓ScatterView包含幾個可以鏈接在一起的對象(用矩形,三角形和其他形狀表示)。ScatterViewItem使用SDK Surface 2.0添加到ScatterView

我剛開始我的projet,我研究了MSDN網站上提供的不同表面樣品。其中一個解釋瞭如何顯式或隱式地將ScatterViewItem添加到ScatterView。

樣品運作良好,我處理我的事件,如樣品建議和我目前正在一個其他處理程序:

AddObject.Click += new RoutedEventHandler(AddObject_Click); 
AddObject.TouchDown += new EventHandler<TouchEventArgs>(AddObject_TouchDown); 

我做同樣的事情在AddObject_Click和AddObject_TouchDown:

private void AddObject_Click(object sender, RoutedEventArgs e) 
{ 
    numObject++; 
    ScatterViewItem item = new ScatterViewItem(); 
    item.Width = 100; 
    item.Height = 60; 
    item.Background = SurfaceColors.Accent1Brush; 
    item.Content = "Object " + numObject.ToString(); 
    item.Orientation = 0; 

    myScatterView.Items.Add(item); 
} 

private void AddObject_TouchDown(object sender, TouchEventArgs e) 
{ 
    numObject++; 
    ScatterViewItem item = new ScatterViewItem(); 
    item.Width = 100; 
    item.Height = 60; 
    item.Background = SurfaceColors.Accent2Brush; 
    item.Content = "Object " + numObject.ToString(); 
    item.Orientation = 0; 

    myScatterView.Items.Add(item); 
} 

我用輸入模擬器來模擬我的屏幕上的TouchEvents。如果兩種方法都沒有註釋,它總是第一個被程序調用的方法。當我評論第一個(及其相關處理程序)時,沒有任何事情發生,我不明白爲什麼。

有人對我的問題有想法嗎?

回答

1

AddObject的類型是什麼?它是一個按鈕?如果是這樣,那麼點擊事件會觸發鼠標和觸摸。然而,TouchDown事件永遠不會觸發,因爲按鈕已經在內部處理這個事件。

+0

是的,它是一個按鈕。那麼,如果我想在ScatterViewItem上添加TouchEvent呢?我總是必須使用ClickEvents? – baptiste

+0

最終你可以使用 AddObject.AddHandler(FrameworkElement.TouchDownEvent,myEventHandlerMethod,true); 最後一個布爾參數允許捕獲已經在其他地方處理過的事件。 – Dmitry

+0

好的謝謝你的提示! – baptiste

相關問題