如何制作不专心的窗户亚克力?

时间:2019-04-07 20:16:37

标签: c# .net wpf uwp

当丙烯酸窗未聚焦时,它不是丙烯酸。

代码

<Page
    x:Class="AcrilicTest.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:media="using:Windows.UI.Xaml.Media"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Page.Resources>
        <media:AcrylicBrush x:Key="HostBackdropBrush"
                            BackgroundSource="HostBackdrop"
                            TintColor="LightBlue"
                            TintOpacity="0.6"
                            FallbackColor="LightSkyBlue" />
    </Page.Resources>

    <Grid Background="{StaticResource HostBackdropBrush}" />
</Page>



屏幕截图

重点关注(丙烯酸):

enter image description here

未聚焦(不是丙烯酸):

enter image description here

1 个答案:

答案 0 :(得分:1)

这是设计使然。 “渲染丙烯酸表面需要占用大量GPU,这会增加设备功耗并缩短电池寿命。”当桌面上的应用程序窗口停用时,背景丙烯酸将被替换为纯色。有关更多详细信息,请参见Acrylic material

  

我可以为美观的界面禁用此功能吗?

如果使用背景丙烯酸(BackgroundSource="HostBackdrop"),则不可能。如果您使用应用内丙烯酸(BackgroundSource="Backdrop"),则效果会更好。当您的应用程序不在活动的桌面窗口中时,丙烯酸仍然存在。

<Grid>
    <Grid.Resources>
        <AcrylicBrush x:Key="MyAcrylicBrush"
        BackgroundSource="Backdrop"
        TintOpacity="0.3" TintColor="#FFFF0000" FallbackColor="#FF008000"></AcrylicBrush>
    </Grid.Resources>

    <Grid.Background>
        <ImageBrush ImageSource="Assets/panda.jpg"></ImageBrush>
    </Grid.Background>

    <Rectangle Fill="{StaticResource MyAcrylicBrush}" Height="300" Width="500"></Rectangle>
</Grid>

enter image description here