Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 什么时候应该创建控件的子类,什么时候应该创建面板的子类?_.net_Wpf_Silverlight_Windows Phone 7_Controls - Fatal编程技术网

.net 什么时候应该创建控件的子类,什么时候应该创建面板的子类?

.net 什么时候应该创建控件的子类,什么时候应该创建面板的子类?,.net,wpf,silverlight,windows-phone-7,controls,.net,Wpf,Silverlight,Windows Phone 7,Controls,在WPFor Silverlight中,何时应创建控件的子类,何时应创建Panel的子类 对于每种情况,适当的场景是什么?一个需要考虑的问题是,当需要新的行为时,通常只在WPF/Silverlight中创建自定义控件。如果您只想更改外观,那么通常可以使用样式、控件模板等进行更改。当我有一个刚性结构时,我使用自定义控件-这意味着我可以在Xaml中精确地布局我想要的内容,即使我可能通过使用多个看起来完全不同的Xaml定义来对控件进行蒙皮。我编写的电子表格控件就是一个例子。一个Xaml定义具有菜单和按

在WPFor Silverlight中,何时应创建控件的子类,何时应创建Panel的子类


对于每种情况,适当的场景是什么?

一个需要考虑的问题是,当需要新的行为时,通常只在WPF/Silverlight中创建自定义控件。如果您只想更改外观,那么通常可以使用样式、控件模板等进行更改。

当我有一个刚性结构时,我使用自定义控件-这意味着我可以在Xaml中精确地布局我想要的内容,即使我可能通过使用多个看起来完全不同的Xaml定义来对控件进行蒙皮。我编写的电子表格控件就是一个例子。一个Xaml定义具有菜单和按钮的特定颜色和布局集,另一个定义则完全不同。当我使用自定义控件时,我总是知道我在布置什么

当我需要覆盖MeasureOverride和ArrangeOverride时,我使用自定义面板,这些面板通常是虚拟的,这意味着我只实例化可见的内容。自定义面板的一个示例是我编写的一个显示数百幅图像的面板。您可以更改布局,例如,一堆页面,2个并排或平铺,以便尽可能多的页面适合和缩放级别。我只读取和显示在自定义面板中可见的图像,并且有一个滚动条可以平移它们


大多数标准面板,如Grid、StackPanel等,都是Microsoft编写的自定义面板。这将使您了解自定义面板的用途——在特定模式中排列未知数量的子元素。另一方面,自定义控件用于设计特定的UI,通常是通过Xaml样式进行蒙皮的UI。

最初的想法:获得更自定义的面板或控件。我在上一篇文章的回复中解释了这一点。@lukas:谢谢,我看到了。我发布了这篇文章,让问题更简单。最后一个有点太复杂了。