zoukankan      html  css  js  c++  java
  • silverlight 制作可拖动控件,并且在控件上添加右键菜单

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    using System.Windows.Interactivity;
    using Microsoft.Expression.Interactivity;
    using Microsoft.Expression.Interactivity.Layout;
    using System.Windows.Browser;
    
    
    
    namespace testControlMove
    {
        public partial class Rec : UserControl
        {
    
           public double x = 0;
           public double y = 0;
            public Rec()
            {
                InitializeComponent();
                BindMenu(image1);
            }
    
            MouseDragElementBehavior dragBehavior = new MouseDragElementBehavior();
            private bool isDrag;
    
            /// <summary>  
            /// 是否允许被拖拽和鼠标右键
            /// </summary>  
            public bool IsDrag
            {
                get { return isDrag; }
                set
                {
                    isDrag = value;
                    if (isDrag == true)
                    {
                        dragBehavior.Attach(this);                                                      //将本对象加入到可以鼠标拖动的行为对象中去  
                        dragBehavior.DragFinished += new MouseEventHandler(dragBehavior_DragFinished);  //在对象移动成功之后加载一个处理事件。  
                        
                    }
                    else if (isDrag == false)
                    {
                        try
                        {
    
                            dragBehavior.Detach();                                                      //设置本控件移动行为取消,并且取消DragFinished处理事件
                            dragBehavior.DragFinished -= new MouseEventHandler(dragBehavior_DragFinished);
                        }
                        catch
                        {
    
                        }
                    }
    
                }
            }
    
            /// <summary>  
            /// 被拖动完成之后触发的事件  
            /// </summary>  
            /// <param name="sender"></param>  
            /// <param name="e"></param>  
            void dragBehavior_DragFinished(object sender, MouseEventArgs e)
            {
                MouseDragElementBehavior dragBehavior = sender as MouseDragElementBehavior;
                this.Tag = dragBehavior.X + "|" + dragBehavior.Y;                                         // this.Tag设置为相应的值  
    
                x = dragBehavior.X;
                y = dragBehavior.Y;
    
    
            }
    
    
    
    
    
            protected void BindMenu(Image c)
            {
                ContextMenu cm = new ContextMenu();//新建右键菜单
                MenuItem mi = new MenuItem();//新建右键菜单项
                mi.Header = "编辑";
                mi.Click += MenuItem1_Click;//为菜单项注册事件      
                cm.Items.Add(mi);
    
                MenuItem mi2 = new MenuItem();//新建右键菜单项
                mi2.Header = "删除";
                mi2.Click += MenuItem2_Click;//为菜单项注册事件      
                cm.Items.Add(mi2);
                ContextMenuService.SetContextMenu(c, cm);//为控件绑定右键菜单
            }
            private void MenuItem1_Click(object sender, RoutedEventArgs e)
            {
                
                ChildWindow1 child = new ChildWindow1();
                child.Show();
    
            }
    
            private void MenuItem2_Click(object sender, RoutedEventArgs e)
            {
                this.Visibility = Visibility.Collapsed;
    
                
    
            }
    
            private void UserControl_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
            {
                e.Handled = true;                       
            }
    
            private void LayoutRoot_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
            {
                
            }
    
    
        }
    }
    

      

  • 相关阅读:
    【学习总结】测试开发工程师面试指南-软件测试行业分析与职业解析
    【学习总结】测试开发工程师面试指南-汇总
    【JAVA】java中char类型数组用数组名打印结果不是地址值而是数组内容
    Python常见问题合集
    操作系统常见问题合集
    算法题常见问题合集
    个人向常见问题合集
    Linux常见问题合集
    数据结构常见问题合集
    网络常见问题合集
  • 原文地址:https://www.cnblogs.com/hbhzz/p/3510575.html
Copyright © 2011-2022 走看看