zoukankan      html  css  js  c++  java
  • Win 8中WPF listview与listBox的Drag、Drop操作

    Win 8中WPF  listview与listBox的Drag、Drop操作。

    基本原理是将listview中的项拖动到listBox中。

    界面:

    <UserControl x:Class="DragTitleToWebView.MainPage"
        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"
        mc:Ignorable="d"
        d:DesignHeight="768" d:DesignWidth="1366">
        
        <Grid x:Name="LayoutRoot" Background="#FF0C0C0C">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="1*"/>
                <ColumnDefinition Width="5*"/>
            </Grid.ColumnDefinitions>
            <ListView Grid.Column="0" AllowDrop="True" CanDragItems="True"  CanReorderItems="True" DragItemsStarting="ListView_DragItemsStarting" >
                <ListView.Resources>
                    <Style TargetType="Rectangle">
                        <Setter Property="Width" Value="100"/>
                        <Setter Property="Height" Value="100"/>
                    </Style>
                    </ListView.Resources>
                <Rectangle Fill="Orange"  Tag="Rect1" Width="100" Height="100"/>
                <Rectangle Fill="Orange" Tag="Rect2" Width="120" Height="120"/>
                <Rectangle Fill="Orange" Tag="Rect3" Width="140" Height="140"/>
                <Rectangle Fill="Orange" Tag="Rect4" Width="160" Height="160"/> 
            </ListView>
            <ListBox x:Name="lb" Grid.Column="1" Margin="10">
               
            </ListBox>
            <Rectangle  Margin="10" x:Name="droppanel" Opacity="0.01" Visibility="Collapsed" Grid.Column="1" AllowDrop="True" Drop="droppanel_Drop" Fill="Green"/>
        </Grid>
        
    </UserControl>
    

     Code:

        using Windows.UI.Xaml.Media;
        using Windows.UI.Xaml.Shapes;
        partial class MainPage
        {
            private bool flag = false;
            public MainPage()
            {
                InitializeComponent();
            }
    
            private void ListView_DragItemsStarting(object sender, DragItemsStartingEventArgs e)
            {
                e.Data.SetText("t", (e.Items[0] as Rectangle).Tag.ToString());
                e.Data.SetText("width", (e.Items[0] as Rectangle).Width.ToString());
                e.Data.SetText("height", (e.Items[0] as Rectangle).Height.ToString());
    
                droppanel.Visibility = Windows.UI.Xaml.Visibility.Visible;
                lb.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                if (flag)
                {
                    lb.Visibility = Windows.UI.Xaml.Visibility.Visible;
                }
            }
    
            private void droppanel_Drop(object sender, DragEventArgs e)
            {
                string tag = e.Data.GetText("t");
                //如果已经有相同的item,则返回
                foreach (Rectangle item in lb.Items)
                {
                    if (item.Tag.ToString() == tag)
                    {
                        return;
                    }
                }
                int width = int.Parse(e.Data.GetText("width"));
                int height = int.Parse(e.Data.GetText("height"));
                Rectangle rect = new Rectangle();
                rect.Tag = tag;
                rect.Height = height;
                rect.Width = width;
                SolidColorBrush b = new SolidColorBrush(Colors.Orange);
                rect.Fill = b;
    
                lb.Items.Add(rect);
    
                droppanel.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                lb.Visibility = Windows.UI.Xaml.Visibility.Visible;
    
                flag = true;
            }
        }
    

    如图:Win 8中是全屏,这里只是图片的一部。

    参考

  • 相关阅读:
    excel中年月日格式的数据分离出年
    Vision MLP 之 Sparse-MLP A Fully-MLP Architecture with Conditional Computation
    Vision MLP 之 S2-MLP V1&V2 : Spatial-Shift MLP Architecture for Vision
    Visoin MLP之CycleMLP A MLP-like Architecture for Dense Prediction
    Vision MLP之RaftMLP Do MLP-based Models Dream of Winning Over Computer Vision
    Vision MLP之Hire-MLP: Vision MLP via Hierarchical Rearrangement
    显著性目标检测之Learning to Promote Saliency Detectors
    paddle中的LoDTensor
    C语言0长度数组(可变数组/柔性数组)
    1、迭代器失效
  • 原文地址:https://www.cnblogs.com/linlf03/p/2373855.html
Copyright © 2011-2022 走看看