在我的应用中,我想在用户点击图片时在弹出窗口中显示一个简单的字符串。为此我向图像添加了一个Tap
手势监听器,在处理程序中我有以下代码:
private void GestureListener_Tap( object sender, GestureEventArgs e )
{
var img = sender as Image;
if( img == null ) {
return;
}
Point pos = e.GetPosition( img );
string text = "I'm a popup!";
var popup = new Popup() {
Child = new Border() {
BorderBrush = new SolidColorBrush( Colors.LightGray ),
Child = new TextBlock() {
Text = text,
TextWrapping = TextWrapping.Wrap,
},
},
HorizontalAlignment = HorizontalAlignment.Stretch,
HorizontalOffset = pos.X,
VerticalOffset = pos.Y,
Visibility = Visibility.Visible,
};
popup.IsOpen = true;
Debug.WriteLine( "GestureListener_Tap: " + text );
}
对WriteLine
的调用在调试器输出窗口中打印,但弹出窗口不会显示。我在这里做错了什么?
感谢您的帮助!
答案 0 :(得分:2)
我尝试了你的代码并显示了Popup。我认为你的问题是图像相对于鼠标的位置。尝试为父容器设置另一个背景,我想你会看到Popup。您也可以尝试使用
Point pos = e.GetPosition(null);
直到你得到你需要的位置