我已經在MyUserControl
(自定義用戶控件)中添加了一些MyLabel
s(自定義WPF控件)。如何使用TargetType在WPF中單擊?
我需要將該標籤上的點擊重定向到一個函數(例如,OnMyLabelClick
)。
我可以將樣式或其他東西與TargetType='MyLabel'
關聯以便將每次myLabel的點擊自動重定向到該功能嗎?
我已經在MyUserControl
(自定義用戶控件)中添加了一些MyLabel
s(自定義WPF控件)。如何使用TargetType在WPF中單擊?
我需要將該標籤上的點擊重定向到一個函數(例如,OnMyLabelClick
)。
我可以將樣式或其他東西與TargetType='MyLabel'
關聯以便將每次myLabel的點擊自動重定向到該功能嗎?
<UserControl.Resources>
<Style TargetType="{x:Type my:MyLabel}">
<EventSetter Event="MouseDoubleClick"
Handler="MyLabel_MouseDoubleClick" />
</Style>
您可以使用附加事件。
考慮連事件的一個簡單的例子:
<StackPanel Label.MouseDown ="Label_MouseDown">
<MyLabel>ABC</MyLabel>
<MyLabel>DEF</MyLabel>
<MyLabel>FGH</MyLabel>
</StackPanel>
,因爲這樣路由事件在WPF工作,你可以爲一個父容器上的所有標籤MouseDown事件寄存器(可能是你的用戶控件)。
如果MyLabel擴展標籤上面的例子將工作
我想'<電網我:MyLabel.MouseDoubleClick =「MyLabel_MouseDoubleClick」>'這個編制,但是從事件的任何反饋... – serhio 2012-03-16 10:21:58
喜。首先,請注意,在我的例子中,使用的附加事件是MouseDown,而不是自定義事件,而不是點擊事件。我不確定您是如何實施點擊您的標籤的,您可以通過多種方式完成此操作。 Click是一個路由事件,其策略是直接的,因此它不會在元素樹中冒泡,請參閱[路由策略](http://msdn.microsoft.com/zh-cn/library/ms742806.aspx)。 Mouse Down是一個路由事件,所以它會在元素樹中冒泡,這就是上述例子的原因。 – 2012-03-16 11:54:07
我不需要MouseDown,我需要MouseDoubleClick ...最後,我需要一個通用的解決方案,不只是一個適用於MouseDown的解決方案...我測試了Style解決方案,它適用於任何事件... – serhio 2012-03-16 12:52:49