C# 在WPF Datagrid中,如何使用箭头键获取键盘焦点的工具提示?

C# 在WPF Datagrid中,如何使用箭头键获取键盘焦点的工具提示?,c#,wpf,datagrid,keyboard,tooltip,C#,Wpf,Datagrid,Keyboard,Tooltip,我使用的是来自codeplex的WPF数据网格。我已为每个单元格附加了工具提示。当鼠标悬停在单元格上时,将显示此工具提示 但是我可以为工具提示提供键盘功能吗。如果我使用向下箭头或向上箭头在DataGrid单元格之间移动(基本上当单元格获得焦点时),我希望工具提示可见 制作自定义工具提示并尝试以下操作: WPF解决方案: <Button Canvas.Left="298" Canvas.Top="124" Height="34" Name="button1" Width="106"

我使用的是来自codeplex的WPF数据网格。我已为每个单元格附加了工具提示。当鼠标悬停在单元格上时,将显示此工具提示


但是我可以为工具提示提供键盘功能吗。如果我使用向下箭头或向上箭头在DataGrid单元格之间移动(基本上当单元格获得焦点时),我希望工具提示可见

制作自定义工具提示并尝试以下操作:

WPF解决方案:

<Button Canvas.Left="298" Canvas.Top="124" Height="34" 
  Name="button1"  Width="106" IsKeyboardFocusedChanged="showToolTip">
    Button
    <Button.ToolTip>
        <ToolTip>
            Whatever
        </ToolTip>
    </Button.ToolTip>
</Button>
  • XAML素材:

    <Button Canvas.Left="298" Canvas.Top="124" Height="34" 
      Name="button1"  Width="106" IsKeyboardFocusedChanged="showToolTip">
        Button
        <Button.ToolTip>
            <ToolTip>
                Whatever
            </ToolTip>
        </Button.ToolTip>
    </Button>
    
WinForm解决方案:(我知道你没有要求它,但我已经写好了,所以我还是会发布它。)


@你能再详细一点吗?我不明白你的代码是什么意思。如果您扩展ToolTip类,您将无法获得诸如base.SetToolTip(..)等方法。当我们像这样使用“(ToolTip)(发送者作为控件)ToolTip时,它将不起作用。ToolTip;”我们将获得字符串而不是ToolTip属性。
public class myUserControls: UserControl
{
    [Category("Category for UserControl")]
    public class ToolTipAdv : ToolTip
    {
        public ToolTipAdv (IContainer container) : base(container)
        {
            this.AutomaticDelay = 300;
            this.BackColor = System.Drawing.SystemColors.Highlight;
            this.ForeColor = System.Drawing.Color.White;
        }

        public void SetToolTip(Control ctrl, string caption)
        {
            ctrl.GotFocus += ShowToolTip;
            base.SetToolTip(ctrl, caption);
        }
        public void ShowToolTip(object sender, EventArgs e)
        {
            string message = base.GetToolTip((Control)sender);
            base.Show(message, (IWin32Window)sender, (sender as Control).Location);
        }

    }
}