如何使 WPF 自定义控件自动出现在 Visual Studio 工具箱中?

发布于 2024-11-05 17:01:34 字数 120 浏览 1 评论 0原文

如果我创建 WPF 用户控件,它会自动显示在 Visual Studio 工具箱中。

有没有办法让其他控件自动出现在Visual Studio工具箱中?

相反,有没有办法从工具箱中隐藏用户控件?

If I create a WPF user control, it appears automatically in the Visual Studio toolbox.

Is there a way to make other controls appear automatically in the Visual Studio toolbox?

Conversely, is there a way to hide a user control from the toolbox?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自由如风 2024-11-12 17:01:34

您可以右键单击工具箱并选择选择项目...,然后您将看到一个对话框,允许您选择要显示或隐藏的控件。

如果您想弄清楚如何为您提供控件的第三方执行此操作,请按照下面的评论查看这篇描述打包控件的 MSDN 文章:
http://msdn.microsoft.com/en-us/library/ms165358.aspx

You can right click on the toolbox and select Choose Items... Then from there you will get a dialog that allows you to select which controls to show or hide.

Per comment below if you are trying to figure out how to do this for a Third Party that you are providing your control to check out this MSDN article that describes packaging your control:
http://msdn.microsoft.com/en-us/library/ms165358.aspx

メ斷腸人バ 2024-11-12 17:01:34

自动填充描述此处(最后),但总而言之,您可以将 DesignTimeVisible(false) 添加到您的 UserControl 以防止将其添加到工具箱。

您的控件应该像您的 UserControls 一样添加,假设它们满足上面链接末尾的要求,即:

出现在自动填充中
工具箱进程必须派生类型
来自 FrameworkElement 和:

  1. 是公共的,并且有一个默认的公共或内部构造函数,或者是
    内部并且有一个默认值
    公共或内部构造函数

  2. 忽略从 Window 或 Page 派生的类型

  3. 忽略其他 .exe 项目中的 FrameworkElement

  4. 只有当活动设计器处于活动状态时才会显示内部类
    对于同一项目中的某个项目

  5. Toolbox 不考虑友元程序集
    自动填充

如果您正在构建可重用控件(最终用户只需添加对程序集的引用),那么您需要告诉 Visual Studio 它应该将您的控件加载到工具箱中。 这里有一个关于 WinForms 控件执行此操作的教程,但概念是相同的。可以找到 VSIX 安装程序教程 此处

许多资源适用于旧版本的 Visual Studio,但同样的概念应该适用。您只需在适当的情况下更新版本信息即可。

Auto population is described here (at the end), but to summarize you can add DesignTimeVisible(false) to your UserControl to prevent it from being added to the Toolbox.

Your controls should be added just like your UserControls, assuming they meet the requirements at the end of the link above, which are:

To appear in the Auto-Population
Toolbox process a type must derive
from FrameworkElement and:

  1. Are public and have a default public or internal constructor or are
    internal and have either a default
    public or internal constructor

  2. Types deriving from Window or Page are ignored

  3. FrameworkElements in other .exe projects are ignore

  4. Internal classes will only be displayed when the active designer is
    for an item in the same project

  5. Friend Assemblies are not taken into account for Toolbox
    Auto-Population

If you are building reusable controls (where your end-users will simply add a reference to your assembly), then you'd need to tell Visual Studio that it should load your controls into the Toolbox. There is a tutorial for WinForms controls on doing this here, but the concepts are the same. A VSIX installer tutorial can be found here.

A lot of the resources out there are for older versions of Visual Studio, but again the same concepts should apply. You simply need to update version information where appropriate.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文