1

我正在尝试将浮动弹出窗口放在屏幕上。我希望用户能够将该弹出窗口移动到屏幕上的任何位置。

所以我正在使用:

<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 甚至没有被调用。

我尝试在矩形、椭圆等形状上使用相同的逻辑,它在那里工作得很好。

你能帮我理解为什么它不能与弹出窗口一起工作吗?

谢谢你。

4

1 回答 1

0

我相信 Popup 没有任何视觉表示,因此它无法响应命中测试,从而无法响应操纵事件。只需在其中放置一些控件并使其响应输入事件。如果您不希望它可见,它可以是Gridwith 。Background="Transparent"

于 2013-03-27T22:17:11.917 回答