Почему эта анимация непрозрачности UWP не работает? - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть простой пример попытки изменить непрозрачность овала:

mainpage.xaml:

<Page Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
      x:Class="App1.MainPage"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
    <Grid x:Name="Orbit">
        <Ellipse Fill="Orange"
                 Height="80"
                 x:Name="Oval"
                 Opacity="0.0"
                 Width="40"/>
    </Grid>
</Page>

mainpage.xaml.cs namespace App1 {using System; используя Windows .UI.Composition; используя Windows .UI.Xaml; используя Windows .UI.Xaml.Controls; используя Windows .UI.Xaml.Hosting;

    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        private Visual ovalVisual;

        public MainPage()
        {
            this.InitializeComponent();
            this.Loaded += this.OnLoaded;
        }

        private void OnLoaded(object sender, RoutedEventArgs e)
        {
            // Get a reference to the compositor object for the current page
            Compositor compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
            ovalVisual = ElementCompositionPreview.GetElementVisual(this.Oval);

            // Create a new animation using Compositor's factory methods
            var opacityAnimation = compositor.CreateScalarKeyFrameAnimation();
            opacityAnimation.Duration = TimeSpan.FromSeconds(3.0);
            opacityAnimation.InsertKeyFrame(0.0f, 1.0f, compositor.CreateLinearEasingFunction());
            opacityAnimation.InsertKeyFrame(1.0f, 0.0f, compositor.CreateLinearEasingFunction());

            // Start our animation
            ovalVisual.StartAnimation(nameof(Visual.Opacity), opacityAnimation);
        }
    }
}

Если я удаляю начальную настройку непрозрачности на овале в mainpage.xaml , то это работает. Если я восстановлю настройку и установлю ее на 1,0, она также будет работать. Я нашел документацию по этой теме довольно скудной. Может кто-нибудь объяснить мне, почему удаление настройки или установка непрозрачности на 1,0 в xaml делают эту работу, но если установить ее на ноль в явном виде, получится изображение, которое никогда не появится? Что такое логика c?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...