这是一个非常简单的应用程序,可以加载带有黑色背景的窗口。
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="1365" Height="768"
WindowStartupLocation="CenterScreen"
Background="Black">
</Window>
效果很好,但是如果我添加一个图像控件,我希望它会在我的图像加载之前显示黑色一秒钟。
<Image Source="pack://application:,,,/assets/images/bg.jpg" />
但由于某种原因,背景显示为白色。加载后图像显示完美,但我希望加载的1秒为黑色,而不是白色。
如果我的图片加载时如何显示黑色背景?
答案 0 :(得分:5)
我试图从后台加载图片,但这并不起作用。我试图加载图像并使用动画从0到大的动画,但这并没有真正起作用,你必须使用固定的宽度。最后,我只想通过触发Image.Loaded
事件时触发的故事板来改变可见性。
在工作解决方案中,在 Image.Loaded事件触发后,保持图像的网格的可见性将从折叠到可见0.1秒。您可以通过更改&#34; MG&#34;的默认可见性来证明这是有效的。 Grid
隐藏或可见,并注意到该窗口的白色时间比其设置为折叠的时间长。
<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Test"
mc:Ignorable="d"
Title="MainWindow"
Height="350"
Width="525"
Background="Black">
<Grid x:Name="MG" Background="Black" Visibility="Collapsed">
<Image Source="pack://application:,,,/assets/images/bg.jpg">
<Image.Triggers>
<EventTrigger RoutedEvent="Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames Duration="0:0:0.1"
Storyboard.TargetName="MG"
Storyboard.TargetProperty="Visibility">
<ObjectAnimationUsingKeyFrames.KeyFrames>
<DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame.Value>
<Visibility>Visible</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames.KeyFrames>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Image.Triggers>
</Image>
</Grid>
</Window>
注意:您可能需要根据您要渲染的图像的文件大小来调整时间。