在同一网格上使用DragMove,MouseDown和自定义按钮时无法关闭表单

时间:2013-09-14 04:40:01

标签: c# wpf

我有一个有MouseDown事件的图片,以便我可以关闭窗口:图片还有一个悬停通过Style.Trigger为简单起见,代码最小化

private void btnClose_MouseUp(object sender, MouseButtonEventArgs e)
{
    Close();
}

因为Window是无边框的(WindowStyle = none),所以我添加了一个MouseDown事件,以便我可以拖动它。

private void appWindow_MouseDown(object sender, MouseButtonEventArgs e)
{
    if (e.LeftButton == MouseButtonState.Pressed)
    {
        this.DragMove();
    }
}

问题是:如果我将MouseDownDragMove()一起使用,我无法将用作按钮的图像用于工作。如果我注释掉DragMove,则按钮可以正常工作。

XAML:

<Image ToolTip="Close" Cursor="Hand" x:Name="btnClose" 
Width="26" Height="26" Margin="505,19,19,306" MouseUp="btnClose_MouseUp">
    <Image.Resources>
        <Style TargetType="{x:Type Image}">
            <Setter Property="Source" Value="img/closeNormal.png"/>
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Source" Value="img/closeHoverWithNoBackground.png"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Image.Resources>
</Image>

所有人都在同一个网格中。

我也想要解决这个问题:

1 个答案:

答案 0 :(得分:0)

尝试调用base.MouseLeftButtonDown

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

      if (e.LeftButton == MouseButtonState.Pressed)
      {
          this.DragMove();
      }
 }