我有一个有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();
}
}
问题是:如果我将MouseDown
与DragMove()
一起使用,我无法将用作按钮的图像用于工作。如果我注释掉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>
所有人都在同一个网格中。
我也想要解决这个问题:
答案 0 :(得分:0)
尝试调用base.MouseLeftButtonDown
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
base.OnMouseLeftButtonDown(e);
if (e.LeftButton == MouseButtonState.Pressed)
{
this.DragMove();
}
}