2008-12-13 57 views
10

我創建了一個UserControl,它由幾個省略號和標籤組成。我把它添加到另一個表單中,事情看起來很時髦。WPF如何讓UserControl繼承按鈕?

然後我開始添加一些事件處理程序,並發現我所做的控件沒有公開Click事件。哎呀。容易修復,對嗎?回到我製作的UserControl上的代碼隱藏,並讓它繼承Button。

不幸的是,這樣做會導致「MyControl的部分聲明不能指定不同的基類」消息。這是一個驚喜,因爲我沒有宣佈任何其他基礎類。搜索部分有問題也沒有結果。

有沒有辦法打敗這個問題?如果不是,這裏最簡單的解決方法是什麼?我的目標是簡單地在UserControl上獲取Click事件。

回答

11

是的,你聲明其他基類:)只要信任編譯器:)

當你寫在XAML <UserControl ...></UserControl>,你繼承用戶控件。如果您想爲按鈕創建子類,請改爲使用<Button ...></Button>,並在代碼隱藏文件中使用「:Button」。

但我強烈建議你不要將Button的子類化,這對你來說是一件過度的任務。您可以使用MouseLeftButtonUp事件而不是Click事件。

+2

MouseLeftButtonUp事件依賴於始終被鼠標點擊的按鈕。當用戶按下空格鍵時,Click事件被觸發,但MouseLeftButtonUp不是(空格鍵不是鼠標左鍵)。 – 2015-01-21 08:33:48