2017-07-30 46 views
1

是否有可能爲wpf上的所有標籤,圖像,文本塊...提供事件?在WPF上從發件人(多類型)獲取名稱

Label a=new Label(); 
a.name="object"+counter; 
counter++; 
a.MouseDown += _MouseDown; 
grid.Children.Add(a); 

Image b=new Image(); 
b.name="object"+counter; 
counter++; 
b.MouseDown += _MouseDown; 
grid.Children.Add(b); 

和事件可能是這樣的: 相反的(對象),我們使用一種類型(圖片)或(標籤)

void _MouseDown(object sender, MouseButtonEventArgs e) 
{ 
    var scrollViewer = (Object)sender; 
     **and here I could get name of it** 
} 

因此,讓我知道,如果有可能有所有人在一個事件請

回答

0

只是把它投給一個超類Name財產。其實,鑄造objectObject是沒用的,它們是一樣的東西,Object沒有Name屬性。

var scrollViewer = (FrameworkElement)sender; 

通過簡單地查找MSDN文檔LabelImage你會發現:

名稱
獲取或設置元素的標識名稱。名稱提供基準,使得代碼隱藏,例如事件處理程序代碼,可以參考它由XAML處理器處理期間構建之後的標記元素。(自FrameworkElement繼承。)

(粗體我的)

+0

這是正確的,謝謝,「矩形或ScrollViewer」如何,我必須提供這些事件的另一個事件? – AliMajidiFard9

+0

''Rectangle''和'ScrollViewer'也繼承自'Frameworkelement',就像你可以在MSDN上看到的那樣。 – oerkelens