<TreeView x:Name="CustomTreeView"
Canvas.Top="1" Canvas.Bottom="1" VerticalAlignment="Stretch"
Margin="10,45,10,10"
MouseRightButtonDown="TView_MouseRightButtonDown">

//添加事件

private void TView_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
object item = GetElementFromPoint((ItemsControl)sender, e.GetPosition((ItemsControl)sender));
isItemSelected = (item != null);
if (!isItemSelected)
{
this.CustomTreeView.ContextMenu = null;
}
}

//根据焦点判断是否有选中对象

private object GetElementFromPoint(ItemsControl itemsControl, Point point)
{
UIElement element = itemsControl.InputHitTest(point) as UIElement;
while (element != null)
{
if (element == itemsControl)
return null;
object item = itemsControl.ItemContainerGenerator.ItemFromContainer(element);
if (!item.Equals(DependencyProperty.UnsetValue))
return item;
element = (UIElement)VisualTreeHelper.GetParent(element);
}
return null;
}

最新文章

  1. C# Activator.CreateInstance()方法使用
  2. JavaScript 事件 编程练习
  3. 辛巴学院-Unity-剑英陪你零基础学c#系列(二)顺序
  4. poj3335 半交平面,多边形内核
  5. WinStore控件之TextBox
  6. sublime 实用 快捷键
  7. c++11 lambda(匿名函数)
  8. FTP被动模式连接及超时问题解决
  9. QQ协议的TEA加解密算法
  10. java 中解决中文乱码问题的方法(三法)
  11. sql server 规则
  12. SpringMVC一路总结(一)(转)
  13. Android的SeekBar和RateBar的使用-android学习之旅(三十二)
  14. Expressions versus statements in JavaScript
  15. IronPython初体验
  16. 基于OLSR的路由协议实现Ad-Hoc组网
  17. 【GIS】Cesium GLTF
  18. Android之AlarmManager
  19. angular2+ 引用layDate日期选择插件
  20. main方法为什么是静态的

热门文章

  1. Vue 超长列表渲染性能优化
  2. 将视图直接转换成表的SQL语句
  3. Spring、SpringMVC的区别
  4. element-ui的collapse中嵌套table表格 的 高度跳跃 问题
  5. CSS:布局篇_两边顶宽中间自适应(圣杯布局&amp;双飞翼布局)
  6. Web文件上传模块 Plupload
  7. 页面导出为PDF
  8. redis 单节点迁移到集群 redis-shake
  9. 只要引用这个js就会页面加载完毕自动弹出提示框
  10. Jest - Using test function to test the function