爲什麼WPF邊框控件沒有mousedoubleclick事件?我有一個ItemsControl與一些DataTemplate中的佈局東西。我想處理雙擊事件以彈出詳細信息對話框,但是我的佈局容器邊框看起來並不顯示該事件。爲什麼WPF邊框控件沒有mousedoubleclick事件?
有關如何獲得雙擊事件或重做xaml使其成爲可能的任何建議?
爲什麼WPF邊框控件沒有mousedoubleclick事件?我有一個ItemsControl與一些DataTemplate中的佈局東西。我想處理雙擊事件以彈出詳細信息對話框,但是我的佈局容器邊框看起來並不顯示該事件。爲什麼WPF邊框控件沒有mousedoubleclick事件?
有關如何獲得雙擊事件或重做xaml使其成爲可能的任何建議?
更新:對不起,是我不好 - 時至今日
內,您的鼠標按鈕按下事件得到ClickCount的
// e.Handled = true; optional
if (e.ClickCount > 1)
{
// here comes double click and more :)
}
MouseDoubleClick是在控制宣告,所以你只是在你的ItemTemplate需要一些控制的一個實例。最簡單的做法是使用基本的Control類,它沒有任何其他行爲,只需給它一個自定義模板,就可以使用您的ItemTemplate中的內容。
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Control MouseDoubleClick="Control_MouseDoubleClick">
<Control.Template>
<ControlTemplate>
<Border>
<!--Other ItemTemplate stuff-->
</Border>
</ControlTemplate>
</Control.Template>
</Control>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
非常好 - 爲我工作就像一個魅力! – cordialgerm 2012-05-23 22:57:22
您也可以使用「ContentControl」並指定內容而不是模板。 – 2016-12-29 19:42:44
只要使用InputBindings。
<Border>
<Border.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick" Command="..."/>
</Border.InputBindings>
</Border>
一般而言;如果不在WPF中開發控件,請避免使用事件。通常,基於事件的代碼的使用是MVVM模式中斷的強烈指示。
Stackpanel沒有雙擊事件。你在暗示我用它做什麼? – 2010-08-05 01:29:28
sry我更新了帖子 – 2010-08-05 01:53:35