Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF在lixbox包装内拖放图像/标签_C#_Wpf - Fatal编程技术网

C# WPF在lixbox包装内拖放图像/标签

C# WPF在lixbox包装内拖放图像/标签,c#,wpf,C#,Wpf,我试图使我在listxbox wrappanel中的图像可拖动,能够在画布中移动图像 我在这里跟踪了样本,但仍然没有工作 下面是我的代码: XAML 我很久以前就这样做了,也许可以帮你:@Gusman我不能编译你的文件,它需要windows8.1。我仍然在使用Windows7和VisualStudio2013,你能转换成Windows7兼容的版本吗。 <Canvas Name="canvastTable" Grid.Row="1" Margin="100,10,10,4" Panel.Z

我试图使我在listxbox wrappanel中的图像可拖动,能够在画布中移动图像

我在这里跟踪了样本,但仍然没有工作

下面是我的代码:

XAML


我很久以前就这样做了,也许可以帮你:@Gusman我不能编译你的文件,它需要windows8.1。我仍然在使用Windows7和VisualStudio2013,你能转换成Windows7兼容的版本吗。
<Canvas Name="canvastTable" Grid.Row="1" Margin="100,10,10,4" Panel.ZIndex="99" Background="Gold" AllowDrop="True" MouseMove="canvastTable_MouseMove">
            <ListBox Name="lbTable" HorizontalAlignment="Left" Height="267" BorderBrush="White" Background="Green" BorderThickness="2" 
            VerticalAlignment="Top" Width="889" Panel.ZIndex="9999" Grid.Row="1" ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
            Canvas.Left="10" Canvas.Top="10">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Image Source="C:\img\mcd.jpg" Width="100" Height="100" Margin="10" Cursor="Hand" AllowDrop="True" 
                            PreviewMouseLeftButtonDown="lbTable_PreviewMouseLeftButtonDown" PreviewMouseLeftButtonUp="lbTable_PreviewMouseLeftButtonUp" />
                    </DataTemplate>
                </ListBox.ItemTemplate>
                <ListBox.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapPanel Orientation="Horizontal" IsItemsHost="True" AllowDrop="True" />
                    </ItemsPanelTemplate>
                </ListBox.ItemsPanel>
            </ListBox>
        </Canvas>
double FirstXPos, FirstYPos;
        object MovingObject;

        private void lbTable_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            FirstXPos = e.GetPosition(sender as Control).X;
            FirstYPos = e.GetPosition(sender as Control).Y;
            MovingObject = sender;

            MessageBox.Show("click");
        }

        private void lbTable_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            MovingObject = null;
            MessageBox.Show("up");
        }

        private void canvastTable_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.LeftButton == MouseButtonState.Pressed)
            {
                (MovingObject as FrameworkElement).SetValue(Canvas.LeftProperty,
                                        e.GetPosition((MovingObject as FrameworkElement).Parent as FrameworkElement).X - FirstXPos);

                (MovingObject as FrameworkElement).SetValue(Canvas.TopProperty,
                        e.GetPosition((MovingObject as FrameworkElement).Parent as FrameworkElement).Y - FirstYPos);

                MessageBox.Show("move");
            }

        }