У меня есть простой пример попытки изменить непрозрачность овала:
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?