DragMove()和MouseDragElementBehaviour将无法在同一窗口中工作?

时间:2012-04-29 21:16:20

标签: c# .net wpf xaml drag-and-drop

我正在使用

创建一个WPF / xaml应用程序

WindowStyle = “无”

因此我必须使用

    protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
    {
        base.OnMouseLeftButtonDown(e);

        // Begin dragging the window
        this.DragMove();

为了使窗口可以在屏幕上拖动。但是我也希望在窗口中制作可拖动的图像,我计划使用

    <Image HorizontalAlignment="Right" Height="65" Width="203" Margin="0,278.271,14.434,82.5" Source="Images/Implementation1.png" Stretch="Fill">
        <i:Interaction.Behaviors>
            <ei:MouseDragElementBehavior ConstrainToParentBounds="True"/>
        </i:Interaction.Behaviors>
    </Image>

问题是我无法让他们在同一个窗口上工作,因为只有在关闭另一个窗口时它们才会起作用。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您的OnMouseLeftButtonDown已在整个窗口中定义,从而干扰MouseDragElementBehavior的触发器。

在您的窗口中添加Border,给它一个BackgroundTransparent没问题,只是不要让它没有背景)并听取MouseLeftButtonDown事件在边界。在事件的处理程序中执行DragMove()

您可以将边框作为窗口的标题,也可以将其放在内容后面。