官方地址:https://docs.microsoft.com/zh-cn/windows/apps/winui/winui2/
NuGet包管理器中添加Microsoft.UI.Xaml
将 Windows UI (WinUI) 主题资源添加到 App.xaml
资源。 可以通过两种方式来这样做,具体取决于你是否有其他应用程序资源。
a. 如果没有其他应用程序资源,
请将 <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"/>
添加到 Application.Resources
:
XAML
<Application>
<Application.Resources>
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
</Application.Resources>
</Application>
b. 否则,如果有多个应用程序资源集,
请将 <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"/>
添加到 Application.Resources.MergedDictionaries
:
XAML
<Application>
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
将对工具包的引用添加到 XAML 页和代码隐藏页。
页面文件
<Page
x:Class="App1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:App1"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
mc:Ignorable="d">
<Grid
x:Name="GlassHost"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
</Grid>
</Page>
点击F7
进入对应的代码文件
设置元素背景毛玻璃效果的方法
private void initializeFrostedGlass(UIElement glassHost)
{
Visual hostVisual = ElementCompositionPreview.GetElementVisual(glassHost);
Compositor compositor = hostVisual.Compositor;
var backdropBrush = compositor.CreateHostBackdropBrush();
var glassVisual = compositor.CreateSpriteVisual();
glassVisual.Brush = backdropBrush;
ElementCompositionPreview.SetElementChildVisual(glassHost, glassVisual);
var bindSizeAnimation = compositor.CreateExpressionAnimation("hostVisual.Size");
bindSizeAnimation.SetReferenceParameter("hostVisual", hostVisual);
glassVisual.StartAnimation("Size", bindSizeAnimation);
}
调用
public MainPage()
{
this.InitializeComponent();
var view = ApplicationView.GetForCurrentView();
view.TitleBar.BackgroundColor = Colors.Transparent;
//将标题栏的三个键背景设为透明
view.TitleBar.ButtonBackgroundColor = Colors.Transparent;
//失去焦点时,将三个键背景设为透明
view.TitleBar.ButtonInactiveBackgroundColor = Colors.Transparent;
view.TitleBar.ButtonInactiveForegroundColor = Colors.Black;
//窗口的可视部分扩展到标题栏上
CoreApplicationView coreappview = CoreApplication.GetCurrentView();
coreappview.TitleBar.ExtendViewIntoTitleBar = true;
//主题区域背景毛玻璃效果
initializeFrostedGlass(GlassHost);
}