簡體   English   中英

如何使用代碼UWP彈出圖像

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM