UserControl with header and content - Allow dropping controls in content panel and Prevent dropping controls in header at design time(带有标题和内容的 UserControl - 允许在内容面板中放置控件并防止在设计时在标题中放置控件)
问题描述
我写了用户控制(耶!).但我希望它表现得像一个容器.可是等等!我知道
诡计.
问题是 - 我不希望我的所有控件都像容器一样,而只是其中一部分.一个事实上的面板;)
为了提供更广泛的上下文:我编写了一个具有网格、一些常用按钮、标签和功能的控件.但它也有一部分用户应该放弃他的自定义按钮/控件.只在这个特定的部分控制,别无他处.
有人知道吗?
你应该做到以下几点:
- 对于您的用户控件,您需要创建一个新的设计器,通过调用
代码
这里是解决方案不同元素的代码.
您的用户控制
内面板设计器
用户控件设计器
I wrote User Control (yay!). But I want it to behave as a container. But wait! I know about
Trick.
The problem is - I don't want all of my control to behave like container, but only one part. One - de facto - panel ;)
To give wider context: I wrote a control that has Grid, some common buttons, labels and functionalities. But it also has a part where the user is supposed to drop his custom buttons/controls whatever. Only in this particular part of the control, nowhere else.
Anyone had any idea?
解决方案You should do the following :
- For your user control, you need to create a new designer which enables the inner panel on design-time by calling
EnableDesignMode
method. - For the inner panel, you need to create a designer which disables moving, resizing and removes some properties from designer.
- You should register the designers.
Example
You can read a blog post about this topic here and clone or download a working example:
- r-aghaei/ChildContainerControlDesignerSample
- Download Zip
Code
Here is the code for different elements of the solution.
Your user control
Designer for the inner panel
Designer for your user control
这篇关于带有标题和内容的 UserControl - 允许在内容面板中放置控件并防止在设计时在标题中放置控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
- For your user control, you need to create a new designer which enables the inner panel on design-time by calling