これは、背景が黒のウィンドウをロードする非常に単純なアプリケーションです。
<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>
うまく機能しますが、画像コントロールを追加すると、画像が読み込まれるまで1秒間黒く表示されると思います。
<Image Source="pack://application:,,,/assets/images/bg.jpg" />
しかし、何らかの理由で、代わりに背景が白く表示されています。ロード後の画像は完全にきれいに表示されますが、ロードの1秒を白ではなく黒にします。
画像の読み込み中に黒い背景を表示するにはどうすればよいですか?
背景から画像を読み込もうとしましたが、うまくいきませんでした。画像を読み込んで、アニメーションを0から大きいアニメーションに使用しようとしましたが、実際には機能せず、固定幅を使用する必要がありました。最後に、Image.Loaded
イベントが発生したときに発生するストーリーボードを使用して可視性を変更することを考えました。
作業ソリューションでは、Image.Loadedイベントが発生してから0.1秒後に、画像を保持しているグリッドの可視性が折りたたみから可視に変わります。「MG」のデフォルトの可視性を「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>
注:レンダリングする画像のファイルサイズの大きさによっては、タイミングを調整する必要がある場合があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加