IsMouseOver不起作用 [英] IsMouseOver doesnt work
问题描述
嗨
即使我在我的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.
Best问候,
张龙
这篇关于IsMouseOver不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!