winUI3 窗口的一些操作
窗口篇:
创建第二个窗口
实现代码如下:
//c#
private Window _window;
//code
_window = new Window();
_window.Activate();
效果(Windows11深色):
窗口设置云母或亚克力背景
准备工作:
下载Scighost
项目-管理nuget程序包
搜索Scighost
安装
实现代码如下:
using Scighost.WinUILib.Helpers;//注意要以上操作正确,否则会报错
backdrop = new SystemBackdrop(this);
// 设置云母背景,如果不支持则设置为亚克力背景
backdrop.TrySetMica(fallbackToAcrylic: true);
效果(Windows11深色):
开启时:
未开启:
窗口最大化等操作
首先安装Vanara.PInvoke.User32(方法同上)
实现代码如下:
using Vanara.PInvoke;//注意要以上操作正确,否则会报错
//code
private IntPtr hwnd;
private AppWindow appWindow;
hwnd = WindowNative.GetWindowHandle(this);
WindowId id = Win32Interop.GetWindowIdFromWindow(hwnd);
appWindow = AppWindow.GetFromWindowId(id);
// 窗口最大化
User32.ShowWindow(hwnd, ShowWindowCommand.SW_SHOWMAXIMIZED);
效果:
实现自动最大化。
调整窗口位置和大小:
实现代码如下:
// 调整窗口位置和大小,以屏幕像素为单位
appWindow.MoveAndResize(new RectInt32(_X: 560, _Y: 280, _Width: 800, _Height: 600));
(实际测试可能会有bug,如果在全屏后调用窗口变成方角)
去掉窗口顶部的白条
实现代码如下:
// MainWindow.xaml.cs
using Microsoft.UI.Xaml;
<!-- MainWindow.xaml -->
<Grid>
<Border x:Name="AppTitleBar"
Height="48"
VerticalAlignment="Top">
<TextBlock VerticalAlignment="Center" Text="WinUI Desktop" />
</Border>
</Grid>
<!-- App.xaml -->
<!-- 右上角按键的背景色设置为透明 -->
<StaticResource x:Key="WindowCaptionBackground" ResourceKey="ControlFillColorTransparentBrush" />
<StaticResource x:Key="WindowCaptionBackgroundDisabled" ResourceKey="ControlFillColorTransparentBrush" />
注意上面的文件位置说明(第一行)
App.xaml在这里:
效果(Windows11深色):
同时上文的bug也解决了文章来源:https://www.toymoban.com/news/detail-742575.html
参考的一些文章:文章来源地址https://www.toymoban.com/news/detail-742575.html
Windows UI 库 (WinUI) 3 - Windows apps | Microsoft Learn
WinUI 3 踩坑记 - 随笔分类 - Scighost - 博客园 (cnblogs.com)
到了这里,关于WinUI 3入门过程的各种坑一的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!