none
下面这两组代码如何使用?跪求大神。 RRS feed

  • 问题

  • Grid app模板中现在想在这三张图片上实行过渡变换,一位高手给我提供了一段代码,说是可以实现进入下一个页面时背景图片可以逐渐显现。那么这两段代码又应该如何使用?应该放在哪里才正确呢?我不会使用;代码如下,求大神解答。
    <Grid
            Style="{StaticResource LayoutRootStyle}"
            DataContext="{Binding Group}"
            d:DataContext="{Binding AllGroups[0], Source={d:DesignInstance Type=data:SampleDataSource, IsDesignTimeCreatable=True}}" Name="LayoutRoot" Loaded="LayoutRoot_Loaded">
            <Grid.Resources>
                
                <Storyboard x:Name="fadeInStoryBoard">
                    <DoubleAnimation
                        Storyboard.TargetName="LayoutRoot"
                        Storyboard.TargetProperty="Opacity"
                        From="0" To="1.0" Duration="0:0:10"/>
                </Storyboard>
            </Grid.Resources>

      private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
            {
                ImageBrush image = new ImageBrush();
                image.ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/Logo.png"));
                LayoutRoot.Background = image;
                fadeInStoryBoard.Begin();
            }

    2013年12月14日 9:12

答案

  • 恩,BitmapImage不能用是因为缺少了引用,所以你应该在CS文件最顶端加入这么一句:

    using Windows.UI.Xaml.Media.Imaging;

    如果以后同样遇到这样的问题,你可以到MSDN中查阅,比如说这次的BitmapImage,你可以查看http://msdn.microsoft.com/library/windows/apps/BR243235 这里,找到它所归属的类,在文件中引用即可。

    --James


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    2013年12月15日 9:47
    版主
  • 感谢您的回答,我将Anne Jing版主所列的两段代码成功放入。但是将后台CS代码放入GroupDetailPage.xaml.cs中后,出现了一个问题。下面是后台CS代码~~

            private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
            {
                ImageBrush image = new ImageBrush();
                image.ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/Logo.png"));
                LayoutRoot.Background = image;
                fadeInStoryBoard.Begin();
            }

    放入后,会出现错误,是BitmapImage出了错,提示说“未能找到类型或命名空间名称“BitmapImage“(是否缺少using指令或程序集引用?)” 启动调试后,出现错误”未能找到类型或命名空间名称”BitmapImage“(是否缺少using指令或程序集引用?)”

    如果删除image.ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/Logo.png"));一行,即可成功启动调试,此时打开页面会出现所有文字,图片都以渐显的方式出现。但是背景会消失,一片黑。所以现在是渐显的效果实现了,但不是背景,而是主要内容。请问如何才能正确运行,并使背景渐显?请您给出指导!!!再次谢谢您!!!


    2013年12月15日 8:49

全部回复

  • 不是很明显了么,不知道你的疑问在哪里?一个在Grid中,一个在Grid的Loaded事件中,代码中都写的很明确了

    另外我建议同一个问题在同一个帖子中讨论,你的问题可以在另一个帖子中由Anne Jing版主继续跟进。

    --James


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    2013年12月14日 16:33
    版主
  • 我的疑问是无法正确放置两组代码,每次都放不对,很头疼。我就是着急,不然也不会再发一个帖子。我是个初学者,很多问题都不懂,而且都是自学,所以有点着急,请您见谅!!!!谢谢您!!!您能告诉我loaded事件在哪里吗?应该不是在GridDetailPage.xaml中吧,请您告诉我~~~谢谢!


    2013年12月14日 23:41
  • 程序编写的时候一个是前台XAML,一个是后台CS代码,很明显loaded事件是需要在XAML中定义之后在后台CS中实现。

    比如说Grid中有一行是

    Loaded="LayoutRoot_Loaded"

    表示在前台XAML中Grid元素中注册Loaded事件,然后再后台CS代码中详细写明Loaded事件中需要做什么。所以loaded事件的处理过程是放在CS文件中的。不知道你是否明白我的意思了?

    --James


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    2013年12月15日 7:27
    版主
  • 感谢您的回答,我将Anne Jing版主所列的两段代码成功放入。但是将后台CS代码放入GroupDetailPage.xaml.cs中后,出现了一个问题。下面是后台CS代码~~

            private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
            {
                ImageBrush image = new ImageBrush();
                image.ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/Logo.png"));
                LayoutRoot.Background = image;
                fadeInStoryBoard.Begin();
            }

    放入后,会出现错误,是BitmapImage出了错,提示说“未能找到类型或命名空间名称“BitmapImage“(是否缺少using指令或程序集引用?)” 启动调试后,出现错误”未能找到类型或命名空间名称”BitmapImage“(是否缺少using指令或程序集引用?)”

    如果删除image.ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/Logo.png"));一行,即可成功启动调试,此时打开页面会出现所有文字,图片都以渐显的方式出现。但是背景会消失,一片黑。所以现在是渐显的效果实现了,但不是背景,而是主要内容。请问如何才能正确运行,并使背景渐显?请您给出指导!!!再次谢谢您!!!


    2013年12月15日 8:49
  • 恩,BitmapImage不能用是因为缺少了引用,所以你应该在CS文件最顶端加入这么一句:

    using Windows.UI.Xaml.Media.Imaging;

    如果以后同样遇到这样的问题,你可以到MSDN中查阅,比如说这次的BitmapImage,你可以查看http://msdn.microsoft.com/library/windows/apps/BR243235 这里,找到它所归属的类,在文件中引用即可。

    --James


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    2013年12月15日 9:47
    版主