我有一个弹出窗口内的图像。当我在画布内时,如果键已关闭,我想旋转弹出窗口。我的代码不会更新旋转,除非我离开画布(将鼠标移到画布外),然后再次输入(在画布内移动鼠标)。我确认当键在画布内部时,角度正在更新,所以我不知道为什么它不会更新,除非我退出并重新进入。
<Popup Name="floatingTip"
AllowsTransparency="True"
Placement="Relative"
PlacementTarget="{Binding ElementName=MainCanvas}">
<Popup.RenderTransform>
<RotateTransform CenterX="1" CenterY="1" Angle="{Binding Angle}"/>
</Popup.RenderTransform>
<Image Source="{Binding Name}"
Width="{Binding Width}"
Height="{Binding Height}"/>
</Popup>
当鼠标进入画布空间时,我设置了CanvasIsActive = true
。
这是KeyDown事件:
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (CanvasIsActive && currentTool == "staticBrush")
{
cursorImage.Angle += 20;
this.Title = cursorImage.Angle.ToString();
}
}
这是我的Angle属性,当键关闭时会更新:
double imgAngle;
public double Angle
{
get { return imgAngle; }
set
{
imgAngle = value;
OnPropertyChanged("Angle");
}
}
答案 0 :(得分:0)
我明白了。要刷新弹出窗口内的旋转,弹出窗口IsOpen
需要设置为false
,然后再返回true
。另一种解决方案是将RotateTransform
从Popup
移至Image
。