显示图像交换,如Windows Phone C中的图片库#

时间:2013-04-27 06:20:55

标签: c# windows-phone-7 windows-phone-8 galleryview windowsphotogallery

我无法在Windows手机中像图库那样进行流畅的交换。

我尝试flip gesture listener并且能够交换图片,但不能顺利交换。

我试图搜索但没有得到任何答案。我试图以画廊视图的方式显示图像列表。我从过去3天开始挣扎。如果您给我一些建议或链接,请帮助。

1 个答案:

答案 0 :(得分:1)

这是一个简单的例子,我只是为了向您展示如何完成它。希望您觉得有用

<phone:PhoneApplicationPage xmlns:Controls="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls"  
x:Class="PhotoChooser.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True">

<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <!--TitlePanel contains the name of the application and page title-->
    <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
        <TextBlock x:Name="ApplicationTitle" Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/>
        <TextBlock x:Name="PageTitle" Text="page name" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
    </StackPanel>

    <!--ContentPanel - place additional content here-->
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <ListBox x:Name="lbImages">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Controls:Panorama>
                        <Controls:PanoramaItem>
                            <Image Source="{Binding ImageName}"/>
                        </Controls:PanoramaItem>
                    </Controls:Panorama>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </Grid>
</Grid>

这个设计师的类文件就是这样的

  public partial class MainPage : PhoneApplicationPage
{
    public MainPage()
    {
        InitializeComponent();

        PanoramaItem panItem = new PanoramaItem();
        List<ImageList> imgList = new List<ImageList>();


        imgList.Add(new ImageList() { ImageName = ImagePath.Image4 });
        lbImages.ItemsSource = imgList;
    }

    public class ImageList
    {
        public string ImageName { get; set; }
    }
}

这实际上运作顺畅,看起来也很好..有很多方法可以实现你的目标。如果这有用,请告诉我。如果这对你不起作用,我会建议其他人。