2011-05-02 131 views
1

有没有关于开发Silverlight自定义控件的好书?Silverlight自定义控件

我想要的是创建一个也可以充当TreeList控件的网格控件。你能告诉我什么是这种控制的好基础?

还有一个问题:如果我在Silverlight中开发控件,如何重复使用与WPF相同的控件的代码?

是否必须复制代码?我希望不是......

再见 马蒂亚斯

+0

混合的DataGrid和TreeView中是最常见的问题之一,有关WPF控件:http://stackoverflow.com/questions/4293739/datagrid-that-also-supports-a-tree -视图。但是我还没有看到一个好的答案,而Silverlight将会更加困难。 – vorrtex 2011-05-02 12:41:22

回答

0

我要的是建立一个网格控件,也可以作为的TreeList控制。你能告诉我什么是这种控制的好基础?

基本上,这取决于几个因素,你有更多的选择。在我看来,我会选择面板,如果我在布局和安排过程中需要更多的控制权。

或者,您可以简单地从ItemsControl扩展并编写自己的控件。但是如果您计划实现更大的实现,那么我会强烈建议您阅读WPF Toolkit中提供的GridControl的实现。

Tree List Control On Code Project

而另一个问题:如果我开发在Silverlight控制,我怎么能重复使用我的WPF为相同的控件的代码?

Sharing Code Between WPF and Silverlight From MSDN

+1

我认为codeproject中控件的实现不够灵活。我想我必须从面板派生,因为我需要完全控制。如果我从Panel派生出来,我是否必须自己提供控制权? – codegod 2011-05-04 05:20:37

+0

@codegod,是的。基本上,面板不会如何布局或渲染它的孩子。所以你必须重写ArrangeOverride()和MeasureOverride()来渲染你的自定义控件。海事组织,我会尝试通过修改任何现有WPF ItemsControl的控制模板来实现此TreeList控件。但是,如果您选择采用面板方式,那么通常需要1个月才能实现控制。有很多东西,你需要关心前:虚拟化。顺便说一句,代码项目控制缺少什么,或者你在寻找什么样的灵活性? – 2011-05-04 10:11:01

+1

那么,codeproject-控制是从ListView派生的,我有两个问题,这种方法:我不知道有多快的ListView,特别是对于大量的数据。 ListView只呈现当前可见的项目吗?接下来的问题是,我想有可能显示分组的数据(如在Outlook中)或卡片视图。这意味着我需要布局的全面灵活性。 – codegod 2011-05-04 10:56:42