如何为 Metro 开发制作自定义控件和组件?

Posted

技术标签:

【中文标题】如何为 Metro 开发制作自定义控件和组件?【英文标题】:How to make a custom control and component for Metro development? 【发布时间】:2012-03-13 01:04:50 【问题描述】:

我想领先一步,开始为 Metro (Win8) 制作一些自定义 C# 控件和组件,但我找不到任何关于如何开始的文档或博客文章,或者即使它可能是正确的现在。

metro 控件只是 WPF 控件吗?我还不是 WPF 开发人员;创建自定义用户控件看起来很简单,但 Windows 8 开发人员预览版中不存在该项目类型。那么,WPF 自定义用户控件(VS2010)是我应该用于创建 Metro 控件的项目类型吗?除此之外,我找不到任何关于如何创建用于 WPF/Metro 的组件的文档;您可以创建一个,还是只是一个不可见的自定义用户控件? (我希望有某种类型的组件容器,比如 winforms 使用的那种;Metro 的组件现在只是类库,不再包含设计器支持吗?)

【问题讨论】:

Windows 8 native custom control的可能重复 【参考方案1】:

现在……非常困难。没有办法为控件覆盖 OnRender 等,即创建代码以呈现具有自定义外观的控件。但是,您可以创建自定义模板。您可以在模板中执行的任何操作都是合法的,这就是您必须使用自定义控件的方式。

另一种选择是直接使用光栅(位图)或矢量(Windows.UI.Xaml.Shape?)组件生成您的 UI,然后像这样构建您的 UI。呵呵。

Win8 Metro 很像 WPF,但它不是一个子集。相似但非常不同。许多 WPF 控件没有过渡到 Win8 Metro;相同级别的渲染控制不可用;并且一些系统功能(如高级字体渲染)不存在。所有这一切都可能在即将发布的版本中发生变化,但现在微软似乎正试图限制开发人员创建自定义 UI 控件。

【讨论】:

谢谢;关于组件,您知道我是否仅限于类库,还是有某种方法可以制作实际的组件(设计器/工具箱支持)? 您可以获得对组件的 Expression Blend 支持;它们的包装方式不同,但那里有东西。基本上选择 Win8 MetaData 格式作为构建目标。 您能详细解释一下如何制作自定义模板吗?我在 Win8 DP VS11 Express 新项目对话框中看不到任何类似的项目类型,或任何输出类型。 我的意思是在 XAML 标记中;它不是一个项目类型。我从 WPF 中了解到,可以通过编辑控件的模板来调整很多内容,尽管仍然缺少 Win8 文档。 感谢您的帮助;我想我现在将我的工作限制在组件上。有什么方法可以让组件显示在 Metro 的工具箱中?

以上是关于如何为 Metro 开发制作自定义控件和组件?的主要内容,如果未能解决你的问题,请参考以下文章

android如何为自定义的类传递参数?

在定义自定义选项组件时,如何为react-select应用默认样式?

如何为 JSF 自定义组件动态生成 CSS

如何为自定义帖子和分类法制作 Wordpress 存档页面?

如何为 SFSafariViewController 中的控件设置自定义字体?

c# winform 制作自定义控件