当UWP应用程序打开时,如何在屏幕上显示生成的图像?

当UWP应用程序打开时,如何在屏幕上显示生成的图像?,uwp,Uwp,我正在尝试生成一个分形图像,并在应用程序加载时显示该图像。它适用于单击按钮和调整窗口大小等事件,但不适用于首次打开应用程序时 XAML是: <Viewbox Grid.Row="1" x:Name="Scenario4ImageContainer" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" PointerPressed="Scenario4ImageContainer_PointerPressed">

我正在尝试生成一个分形图像,并在应用程序加载时显示该图像。它适用于单击按钮和调整窗口大小等事件,但不适用于首次打开应用程序时

XAML是:

<Viewbox Grid.Row="1" x:Name="Scenario4ImageContainer"  VerticalAlignment="Stretch" HorizontalAlignment="Stretch" PointerPressed="Scenario4ImageContainer_PointerPressed">
    <Image x:Name="Scenario4Image" />
</Viewbox>

您是否等待窗口被激活? 您可以使用TaskCompletionSource公开App.xaml.cs文件中的方法:

private static TaskCompletionSource _waitActivation =new TaskCompletionSource<bool>();

public static Task WaitWindowActivationAsync(){
    return _waitActivation.Task;
}

private void OnLaunched(...){

 ...

 Windows.Current.Activate();

_waitActivation.TrySetResult(true);

}
您还可以将等待添加到Task.Yield();:


您是否等待窗口被激活? 您可以使用TaskCompletionSource公开App.xaml.cs文件中的方法:

private static TaskCompletionSource _waitActivation =new TaskCompletionSource<bool>();

public static Task WaitWindowActivationAsync(){
    return _waitActivation.Task;
}

private void OnLaunched(...){

 ...

 Windows.Current.Activate();

_waitActivation.TrySetResult(true);

}
您还可以将等待添加到Task.Yield();:


请注意,您不需要将图像控件放在Viewbox中。只需适当设置图像控件的拉伸属性。除此之外,您是否检查了
imageColumn.ActualWidth
imageRow.ActualHeight
是否大于零?我检查过了,宽度和高度肯定大于零。它们是正确的值。请注意,您不需要将图像控件放在Viewbox中。只需适当设置图像控件的拉伸属性。除此之外,您是否检查了
imageColumn.ActualWidth
imageRow.ActualHeight
是否大于零?我检查过了,宽度和高度肯定大于零。它们是正确的值。我可以通过向TaskCompletionSource
private static TaskCompletionSource\u waitActivation=new TaskCompletionSource()添加一个类型来添加App.xaml.cs中的代码
但无法在Page_加载的方法中调用它。我没有访问应用程序变量的权限。也许更新版本的UWP应用程序发生了一些变化?嘿,很抱歉我的代码中出现了错误:将WaitWindowActivationAsync方法设为静态,并从加载的事件处理程序调用它。告诉我它是否有效。我可以通过向TaskCompletionSource
private static TaskCompletionSource\u waitActivation=new TaskCompletionSource()添加一个类型来添加App.xaml.cs中的代码
但无法在Page_加载的方法中调用它。我没有访问应用程序变量的权限。也许更新版本的UWP应用程序发生了一些变化?嘿,很抱歉我的代码中出现了错误:将WaitWindowActivationAsync方法设为静态,并从加载的事件处理程序调用它。告诉我它是否有效。
private async void Page_Loaded(object sender, RoutedEventArgs e)
    {
       await App.WaitWindowActivationAsync(); 
       ...
    } 
private async void Page_Loaded(object sender, RoutedEventArgs e)
    {
       await Task.Yield();
       await App.WaitWindowActivationAsync(); 
       ...
    }