2010-05-05 31 views
5
Biz fare tıklamaları olması gerekir ve bizim View1 tarafından "ihmal" sürükler ama araç ipucu hala o görünümde çalışmalıdır

. Nedeni View1, Z-Order'da View2'nin üzerindedir, bu yüzden View1, View2'yi kırmızı bir renk tonlayabilir ve ToolTip aracılığıyla bir uyarı gösterebilir; ancak IsHitTestVisible = "False" ise View1'e eşlik eden ToolTip çalışmaz. Araç ipucu üzerinde/fare hareket gösterecektir böyleceXAML araç ipucu + IsHitTestVisible = "Yanlış"

herkes etrafında bir işi biliyor ve fare olayları kalanı View1 tarafından yok sayılır ve View2 gitmek var? Yaptıklarımı

sayesinde

Sean

cevap

2

büyük değil:

private void UserControl_Loaded(object sender, RoutedEventArgs e) 
    { 
     var parentWindow = Window.GetWindow(this); 
     var source = PresentationSource.FromVisual(parentWindow) as HwndSource; 

     source.AddHook(WndProc); 
    } 

    private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) 
    { 
     // Handle messages... 
     if (msg == WM_MOUSEMOVE) 
     { 
     ...show tool tip if mouse is over it 
     } 
     return IntPtr.Zero; 
    } 
0

IsHitTestVisible="False" koymayın!

Sadece başkasının aynı sorunla karşı karşıya ise, onlar da yararlı bulabilirsiniz bu satırları

IsEnable = false 
ToolTipService.ShowOnDisabled="True" 
+3

IsEnable bileşeninin tarzını değiştirir. –

2

ekleyin. Biz datagrid üzerinde birkaç satır devre dışı bırakmak için bir gereklilik vardı, ama aynı zamanda onlara OK tuşuna navigasyon izin verir. Bu nedenle, IsEnabled özelliğini denetlemek yerine IsHitTestVisible'a geçmek zorunda kaldık. Bu nedenle, yukarıdaki IsEnabled özelliğine geçiş çözümüne geçemedik. İşte

Ben bu sorunu çözmeye sona nasıl. DataGridRow için RowEnable eklenmiş yeni bir özellik oluşturdu. Bu ekli özellik, virtual etkinleştirme ve devre dışı bırakmayı denetlemek için bir viewmodel özelliğine bağlanabilir. Aynı ViewModel özelliği temel false için IsHitTestVisible kuruyorum nerede ayrıca DataGridCell için yeni bir tarz yarattı. Dolayısıyla, farenin/klavyenin görebileceği bir satır gibi düşünün, ancak hücrelerini/sütunlarını göremezsiniz. Bu, şimdi devre dışı/etkin görünmek için yeni eklenen mülke RowEnabled numaralı satıra göre sıraya girebileceğim anlamına geliyor. Aynı zamanda, sanal olarak devre dışı bırakılmış bu tow'lar için araç ipuçları alabilirim. Bu yardımcı olur

Umut !!