我想在屏幕上放置浮动弹出窗口。我希望用户能够在屏幕上的任何位置移动该弹出窗口。
所以我正在使用:
<Popup x:Name="myPopup" Grid.Row="0" Grid.RowSpan="2" Margin="0, 0, 0, 0" ManipulationMode="All" ManipulationDelta="PopupManipulationDelta" IsLightDismissEnabled="False" Visibility="Collapsed" IsOpen="false">
代码背后的代码:
private void PopupManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
var ct = (CompositeTransform)addShapesPopup.RenderTransform;
ct.TranslateX += e.Delta.Translation.X;
ct.TranslateY += e.Delta.Translation.Y;
UpdateLayout();
}
但这不起作用。函数PopupManipulationDelta甚至没有被调用。
我尝试在矩形,椭圆等形状上使用相同的逻辑,并且在那里工作得很好。
你能帮我理解为什么它不能用弹出窗口吗?
谢谢。
答案 0 :(得分:0)
我相信Popup没有任何可视化表示,因此它无法响应命中测试,从而无法响应操纵事件。只需在其中加入一些控件,就可以响应输入事件。如果您不希望它显示,则可以是Grid
Background="Transparent"
。