2011-11-04 48 views
1

我想更改默认编辑器部件的外观,并且对于如何去做这件事有点不确定,因为似乎有关于此主题的文档缺乏惊人的缺失。Web部件编辑区的自定义PropertyGridEditor等?

我已经能够创建一个具有一些试验和错误的自定义声明性目录,并重写RenderCatalogPart方法,现在希望做一些类似于我的AppearanceEditor和PropertyGridEditor。我试着用CSS改变编辑器部分的样式,但是它们已经被安排到无法摆脱的表格中。现在甚至不可能仅仅按照课程进行,因为课程是封闭的。所以我基本上坚持不得不从头开始编写我自己的问题,我想问题如下:

1)如何获取我需要呈现的控件信息?

2)根据文档,我需要重写ApplyChagnes和SyncChanges方法 - 但我找不到任何有关我实际需要放入这些方法的信息。

3)在类似的说明中,是否可以更改EditorPart本身的布局,以便AppearanceEditor,BehaviourourEditor等并排显示而不是相互排列?

4)有什么办法让页面目录显示在页面的某个地方,甚至在浏览模式下?我很喜欢将它用作“最小化”区域,用户可以发送他们不想要的网页部分。目前他们回到页面目录,用户往往只是添加一个新的部分。我知道我可以在页面上有多个目录区域,这很好,但它只在目录模式下显示。

任何帮助将非常感激。

回答

1

我没有在这里得到任何答复,但我能够找出一种方法来做这些。

  1. 最后,我决定使用反射来获取WebBrowsable的Web部件上的每个公共属性,并确定从该类型显示哪种控件。
  2. ApplyChanges()和SyncChanges()方法实质上只是将页面上的更改持久化到个性化blob,反之亦然。这是在页面上渲染一些控件,并在这些方法中将值映射到Web部件的属性的问题。
  3. 我不认为这是可能的,没有你自己写。
  4. 无法做到这一点,但我不认为这是可能的悲哀。
+0

恭喜修复。如果可以,请务必接受您的答案,以便其他人可以从您的解决方案中学习。干杯〜 –