IsMouseOver不起作用 [英] IsMouseOver doesnt work

查看:74
本文介绍了IsMouseOver不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨 

即使我在我的treeviewItem上,IsMouseOver属性永远不会是真的

IsMouseOver property is never true even when I am on my treeviewItem

我也尝试检查这个peoperty我正在树视图中但是当我在树视图上时仍然不是真的

also I tried to check this peoperty when I am on treeview but still it is not true when Im on treeview

提前感谢您的帮助

private void DropUserNameToTreeViewGroups(object sender,DragEventArgs e)

        {

            _TreeViewItem trv = new _TreeViewItem();



$
            foreach(trvGroups.Items中的_TreeViewItem tr)

            {

                if(tr.IsMouseOver)

                {

                      //做一些事情
                }


            }


            if(e.Data.GetDataPresent(DataFormats.StringFormat))

            {

                string dataString =(string)e.Data.GetData(DataFormats.StringFormat);

                _TreeViewItem node = new _TreeViewItem();

                node.textBlock.Text = dataString;

                trv.Items.Add(node);

            }


        }

private void DropUserNameToTreeViewGroups(object sender, DragEventArgs e)
        {
            _TreeViewItem trv = new _TreeViewItem();


            foreach (_TreeViewItem tr in trvGroups.Items)
            {
                if(tr.IsMouseOver)
                {
                     // do something
                }

            }

            if (e.Data.GetDataPresent(DataFormats.StringFormat))
            {
                string dataString = (string)e.Data.GetData(DataFormats.StringFormat);
                _TreeViewItem node = new _TreeViewItem();
                node.textBlock.Text = dataString;
                trv.Items.Add(node);
            }

        }

推荐答案

Hi 3ib,

Hi 3ib,

您是否检查Treeview控件中的PreviewMouseMove,如下所示:

Do you check the PreviewMouseMove in Treeview control, like this:

private void TreeViewItem_PreviewMouseMove(object sender, MouseEventArgs e)
{
    TreeViewItem tvi = (TreeViewItem)sender;
    if (tvi.IsMouseOver)
    {
        //
    }
}

#XAML

<Window x:Class="ColeWPFSample.TreeviewSample.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ColeWPFSample.TreeviewSample"
        mc:Ignorable="d"
        Title="Window1" Height="450" Width="800">
    <TreeView>
        <TreeView.Resources>
            <Style TargetType="TreeViewItem">
                <Style.Triggers>
                    <Trigger Property="local:MyTreeViewHelper.IsMouseDirectlyOverItem" Value="True">
                        <Setter Property="Background" Value="Green" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </TreeView.Resources>

        <TreeViewItem Header="Header" PreviewMouseMove="TreeViewItem_PreviewMouseMove">
            <TreeViewItem Header="Sub">
                <Button>Click</Button>
                <Button>Clack</Button>
                <Rectangle Width="20" Height="20" Stroke="Blue" />
            </TreeViewItem>
        </TreeViewItem>
    </TreeView>
</Window>

此外,还可以直接在鼠标下面引用以下博客名称为TreeViewItem的触发器。

In addition, please could also refer the following blog which name A trigger for the TreeViewItem directly under the mouse.

https:// blogs.msdn.microsoft.com/mikehillberg/2006/09/21/a-trigger-for-the-treeviewitem-directly-under-the-mouse/

Best问候,

张龙


这篇关于IsMouseOver不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆