Esempio n. 1
0
        public async void PrepareEntranceEffect()
        {
            try
            {
                Compositor BaseCompositor = ElementCompositionPreview.GetElementVisual(BasePage).Compositor;
                Vector2    WindowSize     = new Vector2(Convert.ToSingle(Window.Current.Bounds.Width), Convert.ToSingle(Window.Current.Bounds.Height));

                ContainerVisual Visual = BaseCompositor.CreateContainerVisual();
                Visual.Size        = WindowSize;
                Visual.CenterPoint = new Vector3(WindowSize.X, WindowSize.Y, 0) * 0.5f;
                ElementCompositionPreview.SetElementChildVisual(BasePage, Visual);

                SpriteVisual BackgroundSprite = BaseCompositor.CreateSpriteVisual();
                BackgroundSprite.Size  = WindowSize;
                BackgroundSprite.Brush = BaseCompositor.CreateColorBrush((Color)Application.Current.Resources["SystemAccentColor"]);

                Visual.Children.InsertAtBottom(BackgroundSprite);

                CompositionDrawingSurface ImageDrawingSurface = await SurfaceLoader.LoadFromUri(new Uri("ms-appx:///Assets/SplashScreen.png"));

                SpriteVisual ImageSprite = BaseCompositor.CreateSpriteVisual();
                ImageSprite.Brush  = BaseCompositor.CreateSurfaceBrush(ImageDrawingSurface);
                ImageSprite.Offset = new Vector3(Convert.ToSingle(SplashScreenRect.X), Convert.ToSingle(SplashScreenRect.Y), 0f);
                ImageSprite.Size   = new Vector2(Convert.ToSingle(SplashScreenRect.Width), Convert.ToSingle(SplashScreenRect.Height));

                Visual.Children.InsertAtTop(ImageSprite);
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"Error in PrepareEntranceEffect, message:{ex.Message}");
            }
        }
Esempio n. 2
0
        public async void PrepareEntranceEffect()
        {
            Compositor compositor = ElementCompositionPreview.GetElementVisual(BasePageObject).Compositor;
            Vector2    windowSize = new Vector2((float)Window.Current.Bounds.Width, (float)Window.Current.Bounds.Height);

            //1.创建ContainerVisual实例填充背景色和图片;
            //2.设置中心缩放
            ContainerVisual cv = compositor.CreateContainerVisual();

            cv.Size        = windowSize;
            cv.CenterPoint = new Vector3(windowSize.X, windowSize.Y, 0) * 0.5f;
            ElementCompositionPreview.SetElementChildVisual(BasePageObject, cv);

            //创建sprite的背景色为APP的主题色
            SpriteVisual backgroundSprite = compositor.CreateSpriteVisual();

            backgroundSprite.Size  = windowSize;
            backgroundSprite.Brush = compositor.CreateColorBrush((Color)Application.Current.Resources["SystemAccentColor"]);
            cv.Children.InsertAtBottom(backgroundSprite);

            //创建包含初始屏图像的sprite的尺寸和位置
            CompositionDrawingSurface surface = await SurfaceLoader.LoadFromUri(new Uri("ms-appx:///Assets/SplashScreen.png"));

            SpriteVisual imageSprite = compositor.CreateSpriteVisual();

            imageSprite.Brush  = compositor.CreateSurfaceBrush(surface);
            imageSprite.Offset = new Vector3((float)SplashScreenRect.X, (float)SplashScreenRect.Y, 0f);
            imageSprite.Size   = new Vector2((float)SplashScreenRect.Width, (float)SplashScreenRect.Height);
            cv.Children.InsertAtTop(imageSprite);
        }