小编Ben*_*nni的帖子

在UWP上禁用/更改数据透视动画

枢轴项目的"从侧面滑动"动画不仅在滑动时播放,而且在桌面上用鼠标单击枢轴项目的标题时播放.

如何禁用此动画?完全或仅用于标题上的显式点击/点击.

animation xaml slide win-universal-app uwp

6
推荐指数
1
解决办法
532
查看次数

如何在uwp的xaml中扩展/调整svgs?

由于创建者更新出来了,uwp可以使用svg图像,如此处简要说明(第3分钟).

我有这个svg(48x48),我可以使用它,如果(并且仅当)我将图像的宽度和高度设置为48并且拉伸为无:

<Image Source="ms-appx:///Assets//check.svg" Height="48" Width="48" Stretch="None"/>

如果我将拉伸设置为填充,则图像会消失.如果我增加宽度和高度,我可以看到图标固定在图像的左上角(使用不同的svg但相同大小的屏幕截图).不是拉伸=填充和固定的高度/宽度是缩放图像的预期方式吗?

它看起来像我的拉伸算法没有掌握我的svg应该是48x48.我做错了,还是有变通方法?

c# xaml svg uwp

6
推荐指数
3
解决办法
1857
查看次数

在.NET Core 3.0 Preview9项目中使用System.Windows.Forms类

如何在.NET Core 3.0 WPF项目中使用诸如Screen之类的类?有适用于它们的.NET Core 3.0文档页面,因此我认为它应该可以工作。

VS和编译器告诉我,命名空间Forms不存在于中System.Windows,因此感觉类不在3.0 sdk中。

System.Windows.Formsnuget上没有软件包,“添加引用”对话框仅包含System_Windows_Forms对.net框架的引用,这听起来非常错误:

在此处输入图片说明

我想念什么吗?

c# winforms .net-core .net-core-3.0

5
推荐指数
1
解决办法
496
查看次数

我怎么能强制等待继续在同一个线程?

await 不保证在生成任务的同一任务上继续:

private void TestButton_Click(object sender, RoutedEventArgs e)
{
    Task.Run(async () =>
    {
        Debug.WriteLine("running on task " + Task.CurrentId);
        await Task.Delay(TimeSpan.FromMilliseconds(100));
        Debug.WriteLine("running on task " + Task.CurrentId);
    });
}
Run Code Online (Sandbox Code Playgroud)

这个输出是:

running on task 1
running on task
Run Code Online (Sandbox Code Playgroud)

所以我们可以看到,不仅执行已经移动到另一个任务,而且还移动到UI线程.如何创建专用任务,并强制等待始终继续执行此任务?长时间运行的任务也不会这样做.

我已经看过几个SynchronizationContext实现,但到目前为止它们都没有工作,在这种情况下因为它使用线程而System.Threading.Thread不适用于uwp.

c# asynchronous synchronizationcontext task-parallel-library

4
推荐指数
1
解决办法
4458
查看次数

等待多个任务同时执行任务

想象一下初始化任务和两个工人:

var Init = Task.Run(async () =>
{
    await Task.Delay(1000);
});
var TaskB = Task.Run(async () =>
{
    await Init;
    Console.WriteLine("B finished waiting");
    await Task.Delay(10000000);
});
var TaskC = Task.Run(async () =>
{
    await Init;
    Console.WriteLine("C finished waiting");
    await Task.Delay(10000000);
});
Run Code Online (Sandbox Code Playgroud)

1秒后,,TaskBTaskC打印到控制台,并继续按预期.

但是,当等待Init之后首先完成的任务不使用异步方法时,其他任务await Init调用不会完成:

var Init = Task.Run(async () =>
{
    await Task.Delay(1000);
});
var TaskB = Task.Run(async () =>
{
    await Init;
    Console.WriteLine("B finished waiting");
    await Task.Delay(5000);
});
var TaskC = Task.Run(async () …
Run Code Online (Sandbox Code Playgroud)

c# multithreading task async-await

1
推荐指数
1
解决办法
86
查看次数