当UWP应用程序打开时,如何在屏幕上显示生成的图像?
我正在尝试生成一个分形图像,并在应用程序加载时显示该图像。它适用于单击按钮和调整窗口大小等事件,但不适用于首次打开应用程序时 XAML是:当UWP应用程序打开时,如何在屏幕上显示生成的图像?,uwp,Uwp,我正在尝试生成一个分形图像,并在应用程序加载时显示该图像。它适用于单击按钮和调整窗口大小等事件,但不适用于首次打开应用程序时 XAML是: <Viewbox Grid.Row="1" x:Name="Scenario4ImageContainer" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" PointerPressed="Scenario4ImageContainer_PointerPressed">
<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
是否大于零?我检查过了,宽度和高度肯定大于零。它们是正确的值。我可以通过向TaskCompletionSourceprivate static TaskCompletionSource\u waitActivation=new TaskCompletionSource()添加一个类型来添加App.xaml.cs中的代码
但无法在Page_加载的方法中调用它。我没有访问应用程序变量的权限。也许更新版本的UWP应用程序发生了一些变化?嘿,很抱歉我的代码中出现了错误:将WaitWindowActivationAsync方法设为静态,并从加载的事件处理程序调用它。告诉我它是否有效。我可以通过向TaskCompletionSourceprivate 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();
...
}