拖放不在画布上工作

时间:2013-08-13 23:16:14

标签: wpf

对于WPF,我是一个完整的新手,所以请耐心等待我......

我有一个窗口设置,它有两个基本部分 - 左边的一个部分包含用于拖动的按钮,另一部分在右边的按钮将被拖放的位置。

左侧的按钮部分只是一个垂直方向的堆叠面板,右侧的部分是一个画布。

我花了几个小时挖掘各种帖子和花絮的代码,演示了如何在画布上实现拖放按钮,但不幸的是,它并没有像我期望的那样工作。以下是发生的事情。

我可以左键单击按钮部分中的按钮,然后将其拖动到画布部分,但鼠标指针永远不会变成那个小的拖放图标(指示您可以删除当前正在拖动的项目的图标)当我在空白的画布上空盘旋时。 但是,如果我在画布上有一个TextBox(可能是任何其他控件),那么我可以单击并从表单的左侧部分拖动一个按钮到TextBox和鼠标指针 转入小滴图标,表示我可以放下按钮。当我将鼠标悬停在画布的任何空白部分上时,它就不起作用了,这就是我需要能够放下按钮的地方!

这是我的xaml。如果还有其他需要,请告诉我!在此先感谢您的帮助!

<DockPanel Margin="2">
    <StackPanel Orientation="Horizontal">
        <Border CornerRadius="6" BorderBrush="Gray" Background="LightGray" BorderThickness="2" Padding="8">
            <StackPanel Orientation="Vertical">
                <Button Name="btnNewNode" Width="100" PreviewMouseLeftButtonDown="btnNewNode_PreviewMouseLeftButtonDown" 
                        PreviewMouseMove="btnNewNode_PreviewMouseMove">
                    <StackPanel Orientation="Horizontal">
                        <Image Source="Images/block.png" Height="16" Width="16" />
                        <TextBlock Margin="5,0,0,0">Node</TextBlock>
                    </StackPanel>
                </Button>
                <Separator BorderThickness="1" Margin="4"></Separator>
                <Button Width="100">
                    <StackPanel Orientation="Horizontal">
                        <Image Source="Images/balloon-box-left.png" Height="16" Width="16" />
                        <TextBlock Margin="5,0,0,0">Comment</TextBlock>
                    </StackPanel>
                </Button>
            </StackPanel>
        </Border>
        <Border CornerRadius="6" BorderBrush="Gray" Background="LightGray" BorderThickness="2" Padding="8">
            <StackPanel Name="stpMain" HorizontalAlignment="Center"  Margin="0,0,0,0" VerticalAlignment="Top" Height="675" Width="900">
                <Canvas Name="canvasMain" HorizontalAlignment="Left" Height="605" Margin="0,0,0,0" VerticalAlignment="Top" Width="900"
                        AllowDrop="True" PreviewDragEnter="canvasMain_Dragging" DragEnter="canvasMain_Dragging" PreviewDragOver="canvasMain_Dragging"
                        DragOver="canvasMain_Dragging" Drop="canvasMain_Drop" PreviewMouseLeftButtonUp="canvasMain_PreviewMouseLeftButtonUp">
                    <TextBox Text="Test TextBox" Margin="0,150,0,0" />
                </Canvas>
            </StackPanel>
        </Border>

    </StackPanel>
</DockPanel>

0 个答案:

没有答案