WinUI 3入门过程的各种坑一

这篇具有很好参考价值的文章主要介绍了WinUI 3入门过程的各种坑一。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

winUI3 窗口的一些操作


窗口篇:

  1. 创建第二个窗口

实现代码如下:

//c#
private Window _window;

//code

_window = new Window();

_window.Activate();

效果(Windows11深色):

winui3,WinUI 3,c#,windows,microsoft,Powered by 金山文档
  1. 窗口设置云母或亚克力背景

准备工作:

下载Scighost

项目-管理nuget程序包

winui3,WinUI 3,c#,windows,microsoft,Powered by 金山文档

搜索Scighost

winui3,WinUI 3,c#,windows,microsoft,Powered by 金山文档

安装

实现代码如下:

using Scighost.WinUILib.Helpers;//注意要以上操作正确,否则会报错

backdrop = new SystemBackdrop(this);
// 设置云母背景,如果不支持则设置为亚克力背景
backdrop.TrySetMica(fallbackToAcrylic: true);

效果(Windows11深色):

开启时:

winui3,WinUI 3,c#,windows,microsoft,Powered by 金山文档

未开启:

winui3,WinUI 3,c#,windows,microsoft,Powered by 金山文档
  1. 窗口最大化等操作

首先安装Vanara.PInvoke.User32(方法同上

winui3,WinUI 3,c#,windows,microsoft,Powered by 金山文档

实现代码如下:

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,如果在全屏后调用窗口变成方角)

winui3,WinUI 3,c#,windows,microsoft,Powered by 金山文档
  1. 去掉窗口顶部的白条

实现代码如下:

// 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在这里:

winui3,WinUI 3,c#,windows,microsoft,Powered by 金山文档

效果(Windows11深色):

winui3,WinUI 3,c#,windows,microsoft,Powered by 金山文档

同时上文的bug也解决了

winui3,WinUI 3,c#,windows,microsoft,Powered by 金山文档

参考的一些文章:文章来源地址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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WinUI 3.0 安装

    注1:此文写于2022.12.25. 仅对WinUI 3.0的安装做详细描述。关于WinUI 3.0的概念,以及其与UWP,WPF,WinForms对比,请参见其他博客,如:WinUI 3 试玩报告。 注2:微软自己也有一个WinUI 安装的指南:关于WinUI 3的安装与使用,微软官方 。 目录 前言:WinUI 3.0的简单描述 一、WinUI 3.0 在

    2024年02月03日
    浏览(27)
  • WinUI(WASDK)使用MediaPipe检查人体姿态关键点

    之前有用这个MediaPipe.NET .NET包装库搞了手势识别,丰富了稚晖君的ElectronBot机器人的第三方上位机软件的功能,MediaPipe作为谷歌开源的机器视觉库,功能很丰富了,于是就开始整活了,来体验了一把人体姿态关键点检测。 这个框架是微软最新的应用开发框架,我是用来开发程

    2024年02月15日
    浏览(52)
  • WinUI(WASDK)使用HelixToolkit加载3D模型并进行项目实践

    本人之前开发了一个叫电子脑壳的上位机应用,给稚晖君ElectronBot开源机器人提供一些功能,但是由于是结合硬件才能使用的软件,如果拥有硬件的人员太少,就会导致我的软件没什么人用,于是我就想着能不能将机器人硬件的模型加载到软件里,这样用户就可以不使用硬件

    2024年02月08日
    浏览(60)
  • WinForms、WPF、WinUI和MAUI你能分清吗?来吧,一文告诉你

    在.NET平台中,WinForms、WPF、WinUI和MAUI都是用于创建Windows桌面应用程序的技术框架,它们有一些共同点,但也有一些区别。 以下是对它们的简要介绍: WinForms是最早引入的Windows桌面应用程序开发框架, 于2002年推出 。 它基于传统的窗体和控件模型,使用C#或VB.NET等语言进行开

    2024年04月25日
    浏览(31)
  • WinUI(WASDK)使用HelixToolkit加载机器人3D模型并进行项目实践

    本人之前开发了一个叫电子脑壳的上位机应用,给稚晖君ElectronBot开源机器人提供一些功能,但是由于是结合硬件才能使用的软件,如果拥有硬件的人员太少,就会导致我的软件没什么人用,于是我就想着能不能将机器人硬件的模型加载到软件里,这样用户就可以不使用硬件

    2024年02月08日
    浏览(146)
  • 【WinUI 3】用H.NotifyIcon显示系统任务栏(托盘)图标,实现程序后台运行

    Windows平台上很多需要持续后台运行的程序,都有显示任务栏图标的需求,主要来显示状态信息、提供功能菜单栏。但UWP或Windows App SDK并没有提供对应的API,相反可能是在有意的抑制此项功能,我有理由怀疑是微软的战略布局。 但很显然,这项功能目前并不能有其它完美的替

    2024年02月06日
    浏览(208)
  • Windows 安装lanms-neo 报错 Microsoft Visual C++ 14.0 is required gcc:,No such file or directory等解决过程方法

    Windows 安装lanms-neo 报错 Microsoft Visual C++ 14.0 is required gcc:,gcc: error: /EHsc: No such file or directory ,gcc.exe’ failed with exit status 1,if…的 解决过程方法 想装paddleocr,在安装到遇到lanms-neo 时出现 Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools 错误 第一个查到的方

    2024年02月05日
    浏览(73)
  • 激活Windows过程及报错解决: 0x803f7001 在运行Microsoft Windows 非核心版本的计算机上, 运行“ slui.exe 0x2a 0x803f7001 “以显示错误文本

    最近在激活Windows过程中,遇到了报错: 0x803f7001 在运行Microsoft Windows 非核心版本的计算机上,运行“ slui.exe 0x2a 0x803f7001 “以显示错误文本,现在记录一下。 首先,按下win+R打开\\\"运行\\\",输入 regedit 后回车,打开注册表。 然后再注册表下输入地址 HKEY_LOCAL_MACHINESOFTWAREMicrosoftW

    2024年02月15日
    浏览(51)
  • 百度paddleocr安装过程(各种问题报错)

    安装paddleocr已经两天了,从官网安装到各种教程安装,总是遇到很多warning与error,现在来记录一下。 写在前面:xdm一定要确保自己安装的时候没有开VPN,没有开VPN,没有开VPN。 本机搭建环境: CPU下安装paddlepaddle 2. 第二步安装安装PaddleOCR whl包 官方安装说法: 安装过后直接报

    2024年02月06日
    浏览(33)
  • Mysql 创建存储过程和函数及各种例子

    1.1.1 语法结构 无参的存储过程 有参数的存储过程 删除存储过程: 1.1.2 简单解释 部分语法简单介绍: delimiter $$ $$ 是分隔符,用其他符号也行,比如一个 $ 或者 // 等 定义变量: DECLARE 例子: @符号 使用 SET 直接赋值变量,变量名以 @ 开头:如: set @dogNum = 1002; 其他使用例子如

    2024年02月06日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包