即使控件是从 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 文件的根