问题标签 [winui-3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何让 Canvas 在 WinUI 3 中滚动?
当 Canvas 的孩子不在视线范围内时,我无法让 ScrollBars 出现在 Canvas 上。这被直接添加到 MainWindow。
因此,正在添加水平和垂直方向看不见的儿童。我已经尝试了滚动条可见性、对齐方式等的各种设置,但只是无法让滚动条出现。感谢您的任何意见。
c# - 在 WinUI 3 中的 Microsoft.UI.Composition 中进行命中测试
我正在使用Microsoft.UI.Composition
WinUI 3 中的命名空间将视觉效果渲染到Canvas
如下所示:
但是,当我尝试Canvas
使用VisualTreeHelper.FindElementsInHostCoordinates进行测试时,它不会产生任何结果,因为它是 aShapeVisual
而不是UIElement
。怎么可能命中测试ShapeVisual
?我需要深入CanvasGeometry.FillContainsPoint()
研究 Win2D 还是有更简单的方法?
windows - 是否有 WinUI 3 XAML 的参考?
我正在努力加快构建现代 Windows 应用程序的速度,自 .NET Forms 的辉煌时代以来还没有这样做过。
我正在尝试学习 WinUI 3 (0.8 reunion),而让我感到困惑的是,似乎在任何地方都没有一个有凝聚力的参考。一个地方会告诉我哪些元素可以放入 XAML 文件中的哪些元素等,因此我可以通过阅读参考立即知道,例如,您不能将 a<Span>
放入 a<RichTextBlock>
中,而不必看到奇怪的深奥错误.
MS 的网站周围有一些分散的示例,但我无法找到一个以清晰的方式包含所有这些的单一资源。我可以查找 RichTextBlock 并了解它具有哪些属性,但它没有提供关于它可以包含哪些元素的简单概述。
.net - WinUI3 应用程序引发异常 - 我错过了什么?
我最近升级了 Visual Studio 2019 以安装 Project Reunion 模板,以便我可以运行 WinUI3 应用程序。我按照这个指南。我相信我安装了这个列表中的所有工作负载和组件,但我可能遗漏了一些东西。我安装了模板,当我尝试创建新应用程序时它们会显示出来。
这里是我的 Visual Studio 安装的详细信息。
微软 Visual Studio 专业版 2019
版本 16.11.3
VisualStudio.16.Release/16.11.3+31702.278
微软 .NET 框架
版本 4.8.04084
当我尝试运行应用程序时,我收到以下错误消息:
System.Reflection.TargetInvocationException HResult=0x80131604 Message=异常已被调用的目标抛出。Source=System.Private.CoreLib StackTrace:在 System.RuntimeTypeHandle.CreateInstance(RuntimeType 类型,Boolean publicOnly,Boolean wrapExceptions,Boolean& canBeCached,RuntimeMethodHandleInternal&ctor,Boolean& hasNoDefaultCtor)在 System.RuntimeType.CreateInstanceDefaultCtorSlow(Boolean publicOnly,Boolean wrapExceptions,Boolean fillCache)在 System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, Boolean wrapExceptions) at System.Activator.CreateInstanceT at WinRT.WeakLazy`1.get_Value() at Microsoft.UI.Xaml.Application._IApplicationStatics.get_Instance() at App9.Program 中的 Microsoft.UI.Xaml.Application.Start(ApplicationInitializationCallback 回调)。
此异常最初是在此调用堆栈中引发的:[外部代码]
内部异常1:COMException:未注册类(0x80040154(REGDB_E_CLASSNOTREG))
已安装的工作负载:
指南说要安装C++ (v142) Universal Windows Platform tools
。我在安装程序中看到了这个:
c# - 在没有 DynamicResource 的 WinUI3 中使用系统颜色 - 有可能吗?
我正在将一些 XAML 从 WPF 移植到 WinUI3。据我目前了解,我不能在 WinUI3 中使用 DynamicResource,但是有没有任何解决方法可以在 WPF 中使用像这样的系统颜色:
windows-runtime - 如何使用 WinRT/C++ 在 WinUI3 中打开新窗口?
如何在 WinRT / WinUI3 中打开新窗口?我想单击一个按钮并在当前/主窗口顶部打开另一个浮动窗口。
我已经尝试了几个零运气样本的代码:
- https://docs.microsoft.com/en-us/windows/apps/windows-app-sdk/windowing/windowing-overview
- 我无法导入 <winrt/Microsoft.UI.Windowing.h>(dll 不加载)
- https://github.com/microsoft/Windows-universal-samples/blob/main/Samples/AppWindow/cppwinrt/Scenario3_Size.h
- 这使用旧的 Windows:: 命名空间(不合适)
- https://github.com/microsoft/WinUI-3-Demos/tree/master/src/ContosoAirlinePOS
- 不导航到新窗口(BoardingPassWindow 实际上是一个页面,而不是一个窗口)
Frame.Navigate(xaml_typename<NewWindowClass>())
- 不起作用/抛出异常
- 以上片段^
Window::Current().Content();
调用时抛出异常
appWindow = Microsoft::UI::Xaml::Window(this, {}); appWindow.Activate()
- 抛出异常
大多数 C++ WinUI3 文档中仍然只有 C# 代码示例,因此对我来说基本上没用。我只想打开一个新窗口,别无其他。
c# - 如何在 WinUI-3 中透明主窗口
不要严格判断。我刚开始学习WinUI。使用 WPF,我可以在 XAML 标记中使主窗口透明。是否可以使用 Reunion 使主窗口透明?我需要这个来制作我形状的程序窗口。窗口对象的属性很少。我只找到了如何更改 TitleBar。和更多:
- 我可以像在 Windows 11 上一样使用 reunion 在 Windows 10 上制作圆角吗?
- 云母材料是否适用于 Windows 10?
c# - WinUI 3.0 桌面 - C# 页面导航到现有页面实例
我已经开始使用微软的新 UI 技术 WinUI 3。
我的问题类似于这个WinUI 3.0 Desktop - C# Page Navigation,但我特别想知道导航到现有页面实例。
我的应用程序的主菜单包含一个NavigationView控件。
备注:我安装了这个示例解决方案(“xaml-controls-gallery”)以了解它的基本概念。
目前我在其中有 3 个NavigationViewItem实例:
属于相应菜单项的内容应显示在框架“rootFrame”中。对于内容,我创建了 Page 类:Page1、Page2 和 Page3。
在文件后面的代码中,我处理 NavigationView 的“ItemInvoked”事件。我检查 NavigationItem 的“标签”并设置要导航到的页面的类型。
但是,在Frame实例上调用“NavigateToType”总是会创建页面类的新实例。我想要的是不要放弃用户也对 UI 进行了一些更改的页面状态。所以我想导航到已经存在的页面实例。
我不知道如何做到这一点。
因此,在页面的“OnNavigatedTo”事件中, “e”参数的NavigationMode始终为 NavigationMode.New 而不是 NavigationMode.Refresh。这是“Page1”的示例:
有人知道如何导航到现有页面实例吗?
作为一种解决方法,我尝试直接交换框架的内容:
但我真的不想这样做,因为这会绕过基于框架的导航,并且在导航到其他页面时也不会显示动画。
似乎在 WPF 和“旧”.NET 框架中,有一个类NavigationWindow用于此目的,但在 WinUi 中(尚不存在)。