wpf TreeView右键选中节点弹菜单
<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;
}
最新文章
- C# Activator.CreateInstance()方法使用
- JavaScript 事件 编程练习
- 辛巴学院-Unity-剑英陪你零基础学c#系列(二)顺序
- poj3335 半交平面,多边形内核
- WinStore控件之TextBox
- sublime 实用 快捷键
- c++11 lambda(匿名函数)
- FTP被动模式连接及超时问题解决
- QQ协议的TEA加解密算法
- java 中解决中文乱码问题的方法(三法)
- sql server 规则
- SpringMVC一路总结(一)(转)
- Android的SeekBar和RateBar的使用-android学习之旅(三十二)
- Expressions versus statements in JavaScript
- IronPython初体验
- 基于OLSR的路由协议实现Ad-Hoc组网
- 【GIS】Cesium GLTF
- Android之AlarmManager
- angular2+ 引用layDate日期选择插件
- main方法为什么是静态的