[Bug] 毛玻璃效果在应用全屏后失效

tmp00000 UID.995403
2017-04-23 发表

本帖最后由 tmp00000 于 2017-4-23 20:24 编辑

视频:http://www.bilibili.com/video/av10043144/。 刚刚切换到全屏的时候毛玻璃效果还在,但是等几秒钟就没了。取消全屏后毛玻璃又回来了。 ***图片停止解析*** ***图片停止解析*** ***图片停止解析***

敬告:
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
全部回复:
tmp00000 UID.995403
2017-04-23 回复

本帖最后由 tmp00000 于 2017-4-23 15:47 编辑

[mw_shl_code=vbnet,true]Imports Windows.UI.Composition
Imports Windows.UI.Xaml.Hosting
''' <summary>
''' 可用于自身或导航至 Frame 内部的空白页。
''' </summary>
Public NotInheritable Class MainPage
Inherits Page

Dim sprite As SpriteVisual
Private Sub MainPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
Dim containerVisual = ElementCompositionPreview.GetElementVisual(GrdHostBackdrop)
Dim compositor = Window.Current.Compositor
sprite = compositor.CreateSpriteVisual
Dim brush = compositor.CreateHostBackdropBrush
With sprite
.Size = New Numerics.Vector2(GrdHostBackdrop.ActualWidth, GrdHostBackdrop.ActualHeight)
ElementCompositionPreview.SetElementChildVisual(GrdHostBackdrop, sprite)
.Brush = compositor.CreateHostBackdropBrush
End With
End Sub

Private Sub GrdHostBackdrop_SizeChanged(sender As Object, e As SizeChangedEventArgs) Handles GrdHostBackdrop.SizeChanged
If sprite IsNot Nothing Then
sprite.Size = New Numerics.Vector2(GrdHostBackdrop.ActualWidth, GrdHostBackdrop.ActualHeight)
End If
End Sub

Private Sub BtnFullScreen_Click(sender As Object, e As RoutedEventArgs) Handles BtnFullScreen.Click
With ApplicationView.GetForCurrentView
If .IsFullScreenMode Then
.ExitFullScreenMode()
IcnFullScreen.Glyph = ChrW(Symbol.FullScreen)
Else
.TryEnterFullScreenMode()
IcnFullScreen.Glyph = ChrW(Symbol.BackToWindow)
End If
End With
End Sub

End Class[/mw_shl_code]

AFAN-World UID.2879093
2017-04-23 回复

妈呀,vbnet
全屏是禁止毛玻璃的。

tmp00000 UID.995403
2017-04-23 回复

[mw_shl_code=xml,true]<Page
x:Class="ProjectNeonTest.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ProjectNeonTest"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">

<Grid>
<Grid x:Name="GrdHostBackdrop"/>
<Grid>
<Button x:Name="BtnFullScreen" Padding="16" HorizontalAlignment="Center">
<FontIcon x:Name="IcnFullScreen" FontSize="24" FontFamily="Segoe MDL2 Assets" Glyph="&#xE1D9;" />
</Button>
</Grid>
</Grid>
</Page>
[/mw_shl_code]
上面的是 XAML 代码。

tmp00000 UID.995403
2017-04-23 回复

QuoteAFAN-World 发表于 2017-4-23 15:49
妈呀,vbnet
全屏是禁止毛玻璃的。


本来想利用这个特性和把毛玻璃卡成全透明的 Bug 做截图工具的... 看来微软不让这样做。

vbfool UID.352791
2017-04-23 回复

Quote***链接停止解析***
本来想利用这个特性和把毛玻璃卡成全透明的 Bug 做截图工具的... 看来微软不让这样做。 ...


ScreenCapture能在桌面下调用么?虽然我看它是放在Mobile的runtime里的

xi****ng UID.831636
2017-04-23 回复

你要把titlebar取消掉,将关闭,最小化,最大化的背景色改为transparent.

tmp00000 UID.995403
2017-04-23 回复

Quotevbfool 发表于 2017-4-23 17:54
ScreenCapture能在桌面下调用么?虽然我看它是放在Mobile的runtime里的


我还没试那个功能。 本来打算先开毛玻璃,然后用某个 Bug 把毛玻璃卡成透明,再进全屏模式使用 RenderTargetBitmap.RenderAsync 对存放了 HostBackdropBrush 画的 SpriteVisual 的控件截图。结果要么 RenderAsync 一直不返回,要么截图不包含窗口后面的内容 。

tmp00000 UID.995403
2017-04-23 回复

Quotexianmeng 发表于 2017-4-23 17:57
你要把titlebar取消掉,将关闭,最小化,最大化的背景色改为transparent.


我试试

tmp00000 UID.995403
2017-04-23 回复

Quotevbfool 发表于 2017-4-23 17:54
ScreenCapture能在桌面下调用么?虽然我看它是放在Mobile的runtime里的


桌面似乎没办法用。找不到元数据。

tmp00000 UID.995403
2017-04-23 回复

Quotexianmeng 发表于 2017-4-23 17:57
你要把titlebar取消掉,将关闭,最小化,最大化的背景色改为transparent.


那样任务栏没办法截图。而且现有的截图 API 似乎只能截应用内的内容。

vbfool UID.352791
2017-04-25 回复

果然是焦点没了毛玻璃就没效果了,也真是纠结

wifi王道 UID.553
2017-04-26 回复

我记得是全屏可以毛玻璃,切换其他程序就没了。这个设计太酷炫。hold不住

本站使用Golang构建,点击此处申请开源鄂ICP备18029942号-4联系站长投诉/举报