發表文章

目前顯示的是 11月, 2013的文章

[WPF] 如何取得觸發快顯功能表(右鍵選單)的來源控制項呢?

在WPF中,右鍵選單的功能是利用ContextMenu來達成,如果是用程式碼的方式來幫控制項添加右鍵選單,會大概是下面的方式                  Image   image   =   new   Image ();                  MenuItem   propertyMenu   =   new   MenuItem ();                  propertyMenu . Header   =   "Propertys..." ;                  propertyMenu . Click   +=   ImagePropertyMenu_Click ;                  image . ContextMenu   =   new   ContextMenu ();                  image . ContextMenu . Items . Add ( propertyMenu ); 在上面的程式碼中,可以看到在新增右鍵選單的同時,也將Click事件掛載上去了;事件掛載的程式碼會大約是這樣          static   void   ImagePropertyMenu_Click ( object   sender ,  RoutedEventArgs   e )         {              WinPropertys   propertyWindow   =   new   WinPropertys ();                           propertyWindow . ShowDialog ();         } 在一般的使用情形下,這沒有任何問題,如果只是單純的要呼叫顯示其他的window;但是如果是要做一個像是屬性設定的功能,例如以這個例子來說,我的來源控制項是一個Image,呼叫出來的新視窗中,我希望可以顯示出這個Image的寬度、高度、位置等資訊,那麼應該怎麼處理?在MenuItem的Click事件中,你可以看到不論是e.Source或是Sender,觸發這個事件的都是MenuItem,所以不能夠直接抓到觸發的來源控制項,這個時候就要利用下面的方式來抓取了