xaml 控件如何在 UWP 应用程序中呈现?

How is xaml control rendered in UWP application?

我是 UWP 应用程序开发的新手,想了解 xaml 控件是如何在 UWP 应用程序中呈现的。实现渲染逻辑的class是哪个?该代码是开源的吗?另外,当我创建一个新的自定义控件时,我需要自己处理渲染吗?

How is xaml control rendered in UWP application?

这是一个很大的话题,为了理解这一点,我们需要了解UI Framework Layering。 Windows.UI.XAML-> Windows.UI.Composition-> DirectX 系列。 源自官方document视觉层为图形、效果和动画提供了高性能、保留模式API,是UI跨Windows 设备。您以声明方式定义 UI,视觉层依赖图形硬件加速来确保您的内容、效果和动画以独立于应用程序 UI 线程的流畅、无故障的方式呈现。

And is that code open source?

目前,UWP 开源控件有WinUI。您可以找到基本的自定义控件构建逻辑。

do I need to take care of rendering myself

渲染层次很低,如果你只是自定义继承Control class的控件,你不需要关心渲染过程,只需要按照目标模板样式构建界面即可。并在后面的代码中添加特定的依赖项 属性。更多详情请参考Templated Control document.