2016-12-17 58 views
0

單擊它後,如何在C#中放大圖像(完全在UWP中)? 我嘗試了幾件事:單擊C#後的放大圖像UWP

1)我試圖添加按鈕,與圖像內容,我想放大,然後我添加事件點擊。但我不知道應該在代碼中添加什麼。

2)我也嘗試添加圖像直接到我的XAML頁面,我想創建Tapped事件,但我不知道我應該添加到該代碼中。

我只想創建一個小照片庫,所以點擊圖片後縮略圖會打開更大的圖片。

或者如果有可能添加PDF文件,你也可以寫。這是我的問題的另一個解決方案。

回答

1

您可以通過設置它的RenderTransform屬性放大圖像的ScaleTransform:

private void Image_Tapped(object sender, TappedRoutedEventArgs e) 
{ 
    Image image = sender as Image; 
    image.RenderTransform = new ScaleTransform() { ScaleX = 2, ScaleY = 2 }; 
} 

<Image Source="ms-appx:///Assets/pic.png" Tapped="Image_Tapped" Stretch="None" /> 

scaleX和scaleY屬性獲取或設置縮放因子。請參閱MSDN文檔以獲取更多信息:https://msdn.microsoft.com/library/windows/apps/br242940?f=255&MSPPError=-2147217396

看起來不錯,但有問題。當我添加更多圖像時,比如進入GridView,它們重疊並突出顯示。圖像可以重疊,但是我點擊的圖像應該始終位於頂部...

您可以將點擊的圖像放入一個彈出窗口然後例如當它再次點擊時將其添加回原始面板。我放在一起,應該給你的想法和東西的基礎上的例子:

private void Image_Tapped(object sender, TappedRoutedEventArgs e) 
{ 
    Image image = sender as Image; 

    Panel parent = image.Parent as Panel; 
    if (parent != null) 
    { 
     image.RenderTransform = new ScaleTransform() { ScaleX = 2, ScaleY = 2 }; 
     parent.Children.Remove(image); 
     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); 
    } 
} 

<GridView SelectionMode="None" isItemClickEnabled="True"> 
    <GridView.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <Image Source="ms-appx:///Assets/pic.png" Tapped="Image_Tapped" Stretch="None" /> 
      </Grid> 
     </DataTemplate> 
    </GridView.ItemTemplate> 
</GridView> 
+0

看起來不錯,但有一個問題。當我添加更多圖像時,比如進入GridView,它們重疊並突出顯示。像這樣: [鏈接](http://imgur.com/dPG7YjY) 你也有解決這個問題的方法嗎? – Sendys

+0

如果放大圖片並且GridView中的放大圖片和下一張圖片之間沒有足夠的空間,您如何期望它們不會重疊? – mm8

+0

我的意思是它像圖像,我點擊將在上面..圖像可以重疊,但圖像,我點擊應始終位於頂部... – Sendys