Views/DragView.xaml.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace MahAppsMetro.Demo.Views
{
    /// <summary>
    /// GragView.xaml 的互動邏輯
    /// </summary>
    public partial class DragView : UserControl
    {
        List<string> myList = new List<string>() { "1111", "2222", "3333", "4444", "5555" };

        public DragView()
        {
            InitializeComponent();
            this.thumb1.DragDelta += Thumb1_DragDelta;
            this.listbox1.ItemsSource = myList;
        }

        private void Thumb1_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e)
        {
            Canvas.SetLeft(thumb1, Canvas.GetLeft(thumb1) + e.HorizontalChange);
            Canvas.SetTop(thumb1, Canvas.GetTop(thumb1) + e.VerticalChange);
        }

        private void listbox1_Drop(object sender, DragEventArgs e)
        {
            //var data = e.Data.GetData(listbox1.SelectedItem.GetType());
            var pos = e.GetPosition(listbox1);
            var result = VisualTreeHelper.HitTest(listbox1, pos);
            if (result == null) return;
            //查找目标数据
            var listBoxItem = Helper.WpfHelper.FirstVisualParent<ListBoxItem>(result.VisualHit);
            if (listBoxItem == null) return;
            int index = myList.IndexOf(listBoxItem.Content.ToString());
            int selectIndex = listbox1.SelectedIndex;
            if (selectIndex < 0) return;
            var item = listbox1.SelectedItem;

            myList.Remove(item.ToString());
            myList.Insert(index, item.ToString());
            this.listbox1.ItemsSource = null;
            this.listbox1.ItemsSource = myList;
            //var pos = e.GetPosition(listbox1);
            //var result = VisualTreeHelper.HitTest(listbox1, pos);
            //if (result == null)
            //{
            //    return;
后面还有 44 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。