在Windows 10 Creaters Update中,可以给窗口设置高斯模糊了,只要几行代码!

    <Grid   Loaded="Grid_Loaded">
<Grid x:Name="mg"></Grid>
<Grid Background="Blue" Opacity="0.4" x:Name="rootGrid" ></Grid>
<!--your uielements-->
</Grid>
        Windows.UI.Composition.Compositor _compositor;
Windows.UI.Composition.SpriteVisual _hostSprite;
public MainPage()
{
this.InitializeComponent();
_compositor = Windows.UI.Xaml.Hosting.ElementCompositionPreview.GetElementVisual(this).Compositor;
} private void Grid_Loaded(object sender, RoutedEventArgs e)
{
_hostSprite = _compositor.CreateSpriteVisual();
_hostSprite.Size = new System.Numerics.Vector2((float)rootGrid.ActualWidth, (float)rootGrid.ActualHeight); ElementCompositionPreview.SetElementChildVisual(mg, _hostSprite);
_hostSprite.Brush = _compositor.CreateHostBackdropBrush();
}

效果

XAML里的那个Grid的颜色是可以换的,删了也行。那个是为了实现向开始菜单那样特定颜色的模糊。

不过这个方法在新增加的画中画模式无效

关于如何实现画中画其实很简单

检测是否支持画中画

ApplicationView.GetForCurrentView().IsViewModeSupported(ApplicationViewMode.CompactOverlay)

进入画中画

bool modeSwitched = await ApplicationView.GetForCurrentView().TryEnterViewModeAsync(ApplicationViewMode.CompactOverlay);
    ViewModePreferences compactOptions = ViewModePreferences.CreateDefault(ApplicationViewMode.CompactOverlay);
compactOptions.CustomSize = new Windows.Foundation.Size(, );//你要的窗口大小
bool modeSwitched = await ApplicationView.GetForCurrentView().TryEnterViewModeAsync(ApplicationViewMode.Default, compactOptions);

退出画中画

bool modeSwitched = await ApplicationView.GetForCurrentView().TryEnterViewModeAsync(ApplicationViewMode.Default);

也可以结合UWP的多窗口功能

await CoreApplication.CreateNewView().Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
var frame = new Frame();
compactViewId = ApplicationView.GetForCurrentView().Id;
frame.Navigate(typeof(SecondaryCompactViewPage));
Window.Current.Content = frame;
Window.Current.Activate();
ApplicationView.GetForCurrentView().Title = "画中画窗口";
});
bool viewShown = await ApplicationViewSwitcher.TryShowAsViewModeAsync(compactViewId, ApplicationViewMode.CompactOverlay);

微软的多窗口示例:https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/MultipleViews

微软关于画中画功能的介绍:https://blogs.msdn.microsoft.com/universal-windows-app-model/2017/02/11/compactoverlay-mode-aka-picture-in-picture/

我还做了一个完整的示例,可以在这里下载https://git.oschina.net/PixeezPlus/Sharp2DDemo/tree/master/GaussianBlurWindow

还有一点需要注意,就是这些代码只在PC的Creaters Update以上版本有效

Windows 10 Creaters Update 新功能——画中画模式和窗口高斯模糊的更多相关文章

  1. Windows 10 Creaters Update 画中画模式和窗口高斯模糊

    在Windows 10 Creaters Update中,可以给窗口设置高斯模糊了,只要几行代码! <Grid Loaded="Grid_Loaded"> <Gr ...

  2. 探索Windows 8.1 Update 新功能点

    Windows 8.1 Update 已经使用一段时间了,整体感觉比Windows 8.1 方便了不少,尤其是对鼠标用户来说更是进行了很多优化. 应用磁贴尺寸 在应用磁贴点击鼠标右键,有小.中.宽.大 ...

  3. Windows 10 20H1 2004新功能

    Windows 10的年度更新版本20H1即将问世.目前可以从insider preview渠道中获得.这个版本中看上去对搜索功能做了不小的改进.包括搜索的磁盘占用率以及搜索的一些展示方式. 其它的一 ...

  4. Windows 10又现新Bug,24核心竟卡成蜗牛

    Windows 10又现新Bug,24核心竟卡成蜗牛 https://news.cnblogs.com/n/573996/

  5. Windows 11,一个新功能,一场新屠杀

    6月24日,微软正式公布了新一代操作系统:Windows 11.这次的更新距离上一代操作系统Windows 10的发布,隔了有6年之久. 在新一代的操作系统中,包含了这些亮点: 采用了全新的UI设计. ...

  6. FunDA(10)- 用户功能函数模式:User Function Model

    前面我们提过:FunDA就像一个管道(PipeLine).管道内流动着一串数据(Data)或者运算指令(Action).管道的源头就是能产生纯数据的数据源(Source),跟着在管道的中间会有一些节点 ...

  7. Windows Phone 8.1 新功能 - 应用栏控件

    2014年4月3日的微软Build 2014 大会上.Windows Phone 8.1 正式公布. 相较于Windows Phone 8.不论从用户还是开发人员的角度,都产生了非常大的变化. 接下来 ...

  8. Windows 10 Creators Update [ISO官方镜像][15063][1703][x64][x86][创意者更新正式版]

    请把下载地址手动复制到迅雷里面去,谢谢! [64 位简体中文专业/家庭版] 文件名:cn_windows_10_multiple_editions_version_1703_updated_march ...

  9. Windows 10 如何在当前位置打开 CMD 命令窗口?

    方法一 Win + R 键召唤出运行窗口,然后输入 "CMD" 打开命令提示符. 使用 cd 命令更改当前命令提示符的工作环境. 注释 cd/ - 退到当前所在盘符 cd.. - ...

随机推荐

  1. IIS7上搭建网站的基本方法(系统推荐的安全方案)

    1.创建的程序池命名默认为网站名称,程序池的标识采用默认的ApplicationPoolIdentity,这个会自动生成虚拟的用户,系统推荐的安全方案: 2.网站右键 基本设置 --> 连接为 ...

  2. 微端游戏启动器launcher的制作(序篇)

    公司要做一个游戏接入腾讯QQ游戏大厅,腾讯要求制作一个launcher,公司之前并没有接入过腾讯,所以大家其实都不懂,而我又是新人,所以刚拿到这个任务的时候整个人就是一个大写的懵逼.在网上查找了不少的 ...

  3. mybatis随笔四之MapperProxy

    在上一篇文章我们已经得到了mapper的代理对象,接下来我们对demoMapper.getDemo(1)这种语句进行分析.由于返回的mapper是个代理对象,因此会进入invoke方法,接下来我们来看 ...

  4. asp.net core mvc实现伪静态功能

    在大型网站系统中,为了提高系统访问性能,往往会把一些不经常变得内容发布成静态页,比如商城的产品详情页,新闻详情页,这些信息一旦发布后,变化的频率不会很高,如果还采用动态输出的方式进行处理的话,肯定会给 ...

  5. JAVA函数的参数传递

    JAVA开发过程中写函数都是不可避免的于是乎参数传递经常会困扰我们,特别是有C/C++功底的童鞋总会纠结于"java到底是值传递还是引用传递?" 先来一段代码(和程序员交流最好的果 ...

  6. JS判断客户端、浏览器、操作系统

    一.JS判断客户端是否是iOS或者Android手机移动端 通过判断浏览器的userAgent,用正则来判断手机是否是ios和Android客户端. 方法一: var u = navigator.us ...

  7. "ORA-01460: 转换请求无法实现或不合理"及C#操作Blob总结

    class BlobDemo { private static readonly string ConnectionString = "Data Source=Tcco;User ID=sc ...

  8. weex官方demo weex-hackernews代码解读(下)

    weex 是阿里出品的一个类似RN的框架,可以使用前端技术来开发移动应用,实现一份代码支持H5,IOS和Android.而weex-hacknews则是weex官方出品的,首个使用 Weex 和 Vu ...

  9. 纪中集训 Day 0?

    好吧昨天的等到今天才来写,现在超不想刷题,来写下blog吧= = 坐了近10H的火车终于来到了中山市 火车上在看空之境界,等有时间补下动画吧= = 到了宿舍各种不习惯(现在才发现还是母校好QAQ)然后 ...

  10. 关于OpenGL和DX学习的取舍

    大家多知道左右就肯定要与显卡打交道.两大图形图像IPA.OpenGL(图形),DX(图形,声音,键盘控制,网络) OpenGL的兴起可能取决于苹果公司的适用,吸引看大部分开发者适用,它有跨平台的有点. ...