问题标签 [winui]
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.
xaml - WinUI 3 可以用于 xaml 树的屏幕外渲染吗?
我想使用新的 WinUI 3 框架将 2D xaml 树渲染到 DirectX 纹理。
理想情况下,我希望能够为 WinUI 基础结构提供我自己的 DirectX 设备、上下文和渲染目标,并将 xaml 内容渲染到我的渲染目标上。
我基本上想将 WinUI 3 嵌入到现有的 3D 图形引擎中。
通过浏览文档,我可以看到通过CompositionGraphicsDevice类存在某种形式的DirectX 互操作性。但是我一直无法理解这种机制是否旨在用于将自定义 D3D 内容嵌入到现有的基于 WinUI 的 UI 中或以其他方式。
那么这可以做到吗?WinUI 3 可以在不创建 Window的情况下用于 xaml 树的屏幕外渲染吗?您能否概述这样做所需的步骤?
c# - WinUI ItemsRepeater如何添加交错的项目入口动画?
ItemsControl 有一个ItemContainerTransitions
支持<EntranceThemeTransition IsStaggeringEnabled="True" />
. 我想转移到 ItemsRepeater 以提高大型列表的性能。但是 ItemsRepeater 似乎没有提供任何类似于EntranceThemeTransition
. 任何人都知道我如何为 ItemsRepeater 实现类似的动画效果?
css - 视觉剪辑的不同角半径
我试图Clip
将Visual
. 路径应该是具有不同角半径的圆角矩形。当前用于设置on a的API允许在所有四个角上设置统一的半径CornerRadius
RoundedRectangleGeometry
但我试图与background-radius
允许为所有 4 个角设置不同的角半径的 CSS 属性保持一致:
导致具有所有四个不同椭圆角的东西
所以本质上,我正在寻找一种方法来模拟Visual
'Clip
属性,让我能够实现与 CSS 属性类似的效果。
PS这是这个问题的持续努力。这是我已经尝试过的,但是在这种情况下,应用相同的偏移剪裁逻辑RoundedRectangle
不起作用。该问题的答案不足以满足此要求,因为圆角半径对于 2 个角是相同的(在事实上所有 4 个角)在这种情况下,建议的解决方案不适用于所有不同的椭圆角。偏移剪裁RoundedRectangle
在这里不起作用,因为我需要 4 个不同RoundedRectangle
的 s ,然后以某种方式将它们定位在 s 上,Visual
但该Clip
属性只允许一个CompositionGeometricClip
与一个Geometry
。
我正在使用C++/WinRT
语言投影。
uwp - 为 CompositionClip 使用复杂路径
Visual
UWP/WinUI 中的 s 可以Clip
对它们应用一个CompositionClip
. 其中一种类型CompositionClip
是 a GeometricClip
,它可以具有Geometry
从类派生的各种类型CompositionGeometry
。我正在寻找一个具有圆角矩形形状但具有不同椭圆角半径的剪辑,如下所示
这将非常适合,CompositionRoundedRectangleGeometry
但该类有一个限制,即它支持在所有四个角上具有相同的椭圆半径,不允许不同的半径。所以剩下CompositionPathGeometry
的Path
就是由一个CompositionPath
实例定义的。这是我走到了死胡同的地方。
这CompositionPath
实现了IGeometrySource2D
接口。我不知道如何使用这个IGeometrySource2D
界面来构造一条带有线条和曲线的复杂路径。在线搜索导致这篇文章也避开了使用该接口,而是使用围绕CanvasPathGeometry
它构建的类Windows Community Toolkit
,如果我理解正确,仅适用于C#
根据此GitHub 页面的项目,并且对我不起作用,因为我需要一些东西在 C++ 中。
所以问题是:
- 我们如何使用
IGeometrySource2D
和CompositionPath
创建复杂的形状?如果不可行,那么 - 语言投影有什么等价
CanvasPathGeometry
物吗?C++/WinRT
PS我知道WinUI 3提供RectangleClip
(根据this answer)适用于我的情况,但在UWP中不可用,所以这对我来说不是一个可行的解决方案。
编辑:
Win2D.UWP
根据评论中共享的建议/指针,这是使用 NuGet 包的尝试。
这似乎有效
现在,下一步将努力删除对et al的Win2D
依赖,并使用其他接口来提供,因为我不希望将 NuGet 包作为项目依赖。CanvasPath
ID2D1Geometry
IGeomterySource2D
c# - 如何获取 WinUI 控件的父窗口?
我需要获取对父级的引用以Microsoft.UI.Xaml.Window
获取Control
. Project Reunion 0.5 中有没有办法做到这一点?Window.Current
在桌面应用程序中不起作用。
c# - 如何将 ContentDialog 包装在自定义控件中?
我正在尝试制作一个可重复使用的 WinUI 对话框来显示进度信息,但我希望我使用 aContentDialog
作为实现细节而不公开其 API 的事实。我想我可以通过派生Control
并创建其ContentDialog
内部来做到这一点ControlTemplate
。
像这样的东西:
使用如下定义的样式:
然后我会像这样显示对话框ContentDialog
:
我在 Generic.xaml 中指定了资源字典,但控件甚至不尝试加载模板。我的OnApplyTemplate
方法永远不会被调用,所以_dialog
不会被连接起来。我认为这是因为我实际上并没有在可视化树中创建控件,但那是怎么ContentDialog
做的呢?
如果我打电话给ApplyTemplate()
自己ShowAsync()
,它会返回false
并且模板仍然没有加载。
wpf - 如何将“自定义事件”从“wpf”迁移到“winui”?
wpf到winui迁移如何
自定义路由事件?
找不到EventManager
c# - 创建一个框架并在 app.xaml.cs WinUI 3 上导航
我已将我的 UWP 应用程序移植到 WINUI,但我不知道如何将启动页面更改为 UserLoginPage 而不是 MainWindow。
我试过的:
应用程序正确启动,但在加载第一页时,它给了我以下错误:
xizSoft.exe 中的 0x770BA6F2 处引发异常:Microsoft C++ 异常:内存位置 0x0337E398 处的 winrt::hresult_error。
当我继续调试会话时,它只会将我带到 MainWindow。