即使控件是从 HTML/JS 或 XAML 创建的,Metro 控件是不是在低级别重用相同的代码路径?

Posted

技术标签:

【中文标题】即使控件是从 HTML/JS 或 XAML 创建的,Metro 控件是不是在低级别重用相同的代码路径?【英文标题】:Do Metro controls reuse the same codepath at low level even if controls are created from HTML/JS or XAML?即使控件是从 HTML/JS 或 XAML 创建的,Metro 控件是否在低级别重用相同的代码路径? 【发布时间】:2011-11-30 01:31:33 【问题描述】:

假设我创建了两个 Metro 应用程序,

一个带有 html 视图的

<input type="text"/>

另一个基于 XAML 的视图

<TextBox/>

底层实现是否映射到相同的代码来呈现两个控件?他们会有 100% 相同的行为吗?

【问题讨论】:

【参考方案1】:

没有。 Xaml 呈现堆栈与 HTML 呈现堆栈是分开的。现在,如果您走得足够低,它们将使用相同的代码路径 - 例如,HTML 呈现堆栈和 Xaml 呈现堆栈都是通过相同的显示驱动程序逻辑呈现的。但是核心渲染是分开的。

【讨论】:

了解非常有用。我一定是在 BUILD 2011 罐装“演员表”中错过了这一点。谢谢。 许多 HTML 控件都是用 HTML/CSS 本身实现的。如果你查看 ...\winjs\js\controls.js 你会发现其中一些。 @Bob:我相信每一个讨论 UI 堆栈的演示文稿都始终表明 Xaml 和 HTML 是两个不同的呈现堆栈。 @Larry:是的,我知道。但是许多相同的图表显示 IE 和 .Net/SL 也位于内核之上。 WinRT 的真相是什么?当然,它也位于大部分 Win32 之上,当然 GDI 和其他例外除外。我认为这些图表主要是营销。 这取决于 API。一些 API 是全新的,从上到下。其他的则是在现有 API 之上编写的。有一些小错误(.Net 在 C# 下不存在,底层被称为“内核服务”)但没什么大不了的。

以上是关于即使控件是从 HTML/JS 或 XAML 创建的,Metro 控件是不是在低级别重用相同的代码路径?的主要内容,如果未能解决你的问题,请参考以下文章

wpf自定义控件或窗体继承问题,继承之后出现不能是 XAML 文件的根

将控件的属性设置为值

如何在 XAML 中围绕控件中心进行旋转

XAML TextBox:即使verticalalignment拉伸,如何保持高度固定?

支持除列表视图或列表框之外的数据绑定的 XAML 控件

是否有任何工具可以为 wpf(xaml)中的复杂控件创建实时样式 [关闭]