【问题标题】:How to display an image on start of a wpf app?如何在 wpf 应用程序启动时显示图像?
【发布时间】:2010-07-26 07:52:47
【问题描述】:

我有一个 mvvm 模式的 wpf 应用程序。在主视图中,我与其他视图的链接很少。 但在主视图中显示内容(即......链接)之前,我需要在主视图中显示图像......这意味着......欢迎图像将首先显示给用户......比如说2秒...然后显示实际内容。

有人可以帮我吗?

【问题讨论】:

    标签: wpf image onstart


    【解决方案1】:

    最简单的解决方案是将图像添加到您的项目中,并在属性窗口中将其构建操作设置为SplashScreen。这将导致在您的应用程序加载时显示图像。

    更多详情:How to: Add a Splash Screen to a WPF Application (MSDN)

    优点:

    • 很简单,需要零编码。
    • 它显示在启动过程的早期,即 WPF DLL 仍在加载时。

    缺点:

    • 您无法控制启动画面的显示时间。如果需要,可以直接使用SplashScreen Class

    【讨论】:

    • 是的,现在图像正在显示......但是..它只是作为图像而不是窗口显示......我的意思是......它看起来像第一个图像出现......然后...我的窗口进来了...但我需要在我的窗口中显示图像
    【解决方案2】:
    【解决方案3】:

    既然您说您希望图像显示在窗口中而不是“经典”初始屏幕中,让我添加第二个答案:在您的 WPF 窗口中,执行以下操作:

    <Window ...>
        <Window.Triggers>
            <EventTrigger RoutedEvent="Window.Loaded">
                <BeginStoryboard>
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="mySplash" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0:0:2" Value="{x:Static Visibility.Hidden}" />
                        </ObjectAnimationUsingKeyFrames>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="myContent" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{x:Static Visibility.Hidden}" />
                            <DiscreteObjectKeyFrame KeyTime="0:0:2" Value="{x:Static Visibility.Visible}" />
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Window.Triggers>
        <Grid>
            <Image x:Name="mySplash" ... />
            <Grid x:Name="myContent">
                ...
            </Grid>
        </Grid>
    </Window>
    

    这将显示您的Image 两秒钟,然后将其隐藏并显示您的myContent 网格的内容。如果您希望从初始图像到内容的淡入淡出效果,您可以为Opacity 属性设置动画(使用DoubleAnimation)而不是Visibility 属性。

    【讨论】:

      猜你喜欢
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      • 2014-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多