Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何在加载图像时获得黑色背景?_Wpf_Xaml - Fatal编程技术网

Wpf 如何在加载图像时获得黑色背景?

Wpf 如何在加载图像时获得黑色背景?,wpf,xaml,Wpf,Xaml,下面是一个极其简单的应用程序,它加载一个黑色背景的窗口 <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" WindowStart

下面是一个极其简单的应用程序,它加载一个黑色背景的窗口

<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到大的动画,但这并没有真正的工作,你将不得不使用一个固定的宽度。最后,我想我应该使用一个脚本来改变可见性,该脚本在
Image.Loaded
事件被触发时被触发

在工作解决方案中,图像加载事件触发后0.1秒,保存图像的网格的可见性将从折叠变为可见。您可以通过将“MG”
网格的默认可见性更改为“隐藏”或“可见”来证明这一点,并注意到窗口的白色持续时间比其设置为折叠时长

工作XAML

看得见的

注意:您可能需要根据正在渲染的图像的文件大小来调整计时。

令人惊讶的是,如此简单的想法需要在WPF中付出如此多的努力。我曾考虑过在加载时使用事件触发器,但它对我不起作用,因为我将Visibly设置为“隐藏”而不是“折叠”。谢谢你提供了一个有效的例子。@Karmacon我刚刚读完动画,所以这是一个“冲动”的回答。我想你也可以在代码背后做类似的事情。作为一个新手,我真的能理解为什么WinForms仍然如此流行。
<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>