[英]How to popup Image using codes UWP
我有一個應用程序可以從Internet加載圖片,我想向圖片添加彈出事件,以便用戶可以通過單擊圖片來查看圖片! 我已經嘗試了很多事情來做,所有我發現的事情就是調整圖像的大小,或者只是查看帶有文本的內容對話框! 這是我的代碼:
private static void view_tapped(object sender, TappedRoutedEventArgs e)
{
Viewbox image = sender as Viewbox;
Panel parent = image.Parent as Panel;
if (parent != null)
{
image.RenderTransform = new ScaleTransform() { ScaleX = 0.5, ScaleY = 0.5 };
parent.Children.Remove(image);
parent.HorizontalAlignment = HorizontalAlignment.Stretch;
parent.VerticalAlignment = VerticalAlignment.Stretch;
parent.Children.Add(new Popup() { Child = image, IsOpen = true, Tag = parent });
}
else
{
Popup popup = image.Parent as Popup;
popup.Child = null;
Panel panel = popup.Tag as Panel;
image.RenderTransform = null;
panel.Children.Add(image);
}
}
我希望它看起來像我想要將舊圖像保留在同一位置,並創建一個具有與該圖像相同圖像的新網格,您可以在此處查看
我無法使用xaml文件,因為我的圖像是通過dll文件通過代碼從網上加載的!
無法顯示圖像的原因是,您沒有將Image控件添加到ViewBox中以顯示圖像內容,因此可以嘗試以下代碼在彈出窗口中顯示圖像。
private void Viewbox_Tapped(object sender, TappedRoutedEventArgs e)
{
Viewbox image = sender as Viewbox;
Image imageControl = new Image() { Width = 500, Height = 500 };
Uri uri = new Uri("Your image URL");
BitmapImage source = new BitmapImage(uri);
imageControl.Source = source;
image.Child = imageControl;
Panel parent = image.Parent as Panel;
if (parent != null)
{
image.RenderTransform = new ScaleTransform() { ScaleX = 0.5, ScaleY = 0.5 };
parent.Children.Remove(image);
parent.HorizontalAlignment = HorizontalAlignment.Stretch;
parent.VerticalAlignment = VerticalAlignment.Stretch;
parent.Children.Add(new Popup() { Child = image, IsOpen = true, Tag=parent});
}
else
{
Popup popup = image.Parent as Popup;
popup.Child = null;
Panel panel = popup.Tag as Panel;
image.RenderTransform = null;
panel.Children.Add(image);
}
}
順便說一句,請注意Popup是一個控件,它在應用程序窗口的邊界內在現有內容之上顯示內容,並注意“ 備注”部分,
如果Flyout,MenuFlyout,ToolTip或ContentDialog(對於Windows 8應用程序為MessageDialog)更合適,請不要使用彈出窗口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.