IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: C# WPF DataGrid - pohyb tooltipu s myší pouze nad řádky

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Lukáš Fusek
Tvůrce
Avatar
Lukáš Fusek:4.3.2017 11:13

Zdravím.
Můj cíl je udělat pohybující se tooltip zároveň s myší, který se zobrazí pouze, když je myš nad jednotlivými řádky (záznamy).

Díky tohohle to funguje tak, jak jsem si přál (pokud znáte elegantnější řešení, sem s ním :-D)

System.Windows.Controls.ToolTip tt = new System.Windows.Controls.ToolTip()
{
    Content = "Double click to edit",
    Placement = System.Windows.Controls.Primitives.PlacementMode.Relative
};
private void DataGridCell_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
{
    tt.HorizontalOffset = e.MouseDevice.GetPosition(this).X + 5;
    tt.VerticalOffset = e.MouseDevice.GetPosition(this).Y - 20;
}

Problémem je, že proměnnou tt umím nastavit v codebehind pouze celému dataGridu, takže se tooltip zobrazí, i když myší ukážu třeba jen na prázdný dataGrid bez záznamů.
Potřeboval bych něco takového zvládnout v codebehind:

<Style TargetType="DataGridCell">
        <Setter Property="ToolTip" Value="{Binding Path=tt}"/>
</Style>

Nemůžu použít binding (takovým způsobem, jak je uvedeno výše), protože DataContext dataGridu je už jiná třída.
Nějaké nápady? :-)

Editováno 4.3.2017 11:15
 
Odpovědět
4.3.2017 11:13
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.