如何在没有ControlTemplate的情况下创建WPF自定义控件?

彼得·胡伯

我需要编写一个WPF定制控件,该控件由其他4个FrameworkElement派生的定制类组成。通常我会使用Grid来排列它们,但是Grid存在一些布局问题,因此我必须编写自己的从Panel继承的类。当然,我的自定义控件可以从Panel继承,但是随后将公开Children和其他Panel功能,而这不应该。

我需要一个自定义控件,该控件仅显示我添加的一些属性和典型的FrameworkElement属性。我正在考虑我的自定义控件继承自Control。但是我不想使用ControlTemplates。我想创建面板并从后面的代码中添加FrameworkElements。如何才能做到这一点 ?

让我总结一下问题:1)控制是从中得出的最佳类吗?

2)如何在不使用ControlTemplate的情况下将FrameworkElements添加到Control的派生类?

贾瓦哈尔
  1. 是的。控制是派生的最佳类别。

  2. 您需要重写方法GetVisualChild()和属性VisualChildrenCount。我正在考虑您希望有4个自定义框架元素作为您的孩子,并在构造函数中初始化该集合。然后,代码如下所示

    private List<UIElement> visualChildren;
    
    protected override int VisualChildrenCount
    {
        get
        {
            return this.visualChildren.Count;
        }
    }
    
    protected override Visual GetVisualChild(int index)
    {
        return this.visualChildren[index];
    }
    

您也可以覆盖MeasureOverride和ArrangeOverride方法以将大小分配给子对象,并分别排列子对象。

更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在没有SDK或自定义应用ID的情况下创建Facebook分享按钮?

来自分类Dev

如何在没有jquery的情况下使用title属性创建自定义工具提示

来自分类Dev

如何在没有jshint警告的情况下以角度定义自定义包?

来自分类Dev

如何在没有自定义HTML标签的情况下使用AngularJS?

来自分类Dev

如何在没有 <li> 的情况下显示欧芹自定义错误消息

来自分类Dev

在没有RemoteView的情况下创建自定义android通知

来自分类Dev

如何在没有xmlns / idQ的情况下将组添加到(VBA)自定义功能区?

来自分类Dev

在没有spring的情况下如何在Hibernate Validator中使用自定义错误消息?

来自分类Dev

如何在没有父级的情况下将xml膨胀为自定义视图

来自分类Dev

如何在没有xmlns / idQ的情况下将组添加到(VBA)自定义功能区?

来自分类Dev

如何在没有自定义类的情况下将 UILabel 添加到 UICollectionViewCell?

来自分类Dev

未插入值时如何在没有自定义管道过滤的情况下显示整个表

来自分类Dev

如何在没有多个背景 xml 的情况下更改自定义 toast 消息的背景?

来自分类Dev

如何在没有任何框架的情况下使用自定义注释验证器 POCO(没有 asp.net,没有 mvc,没有 ORM)

来自分类Dev

如何在不使用WPF的情况下在Silverlight 5中使用generic.xaml创建自定义控件?

来自分类Dev

如何在不使用customElement的情况下创建自定义HTML标签?

来自分类Dev

如何在不使用静态方法的情况下创建自定义Twig函数类?

来自分类Dev

如何在不使用IB的情况下使用自定义UITabBar类创建UITabBarController?

来自分类Dev

如何在不扩展列表活动的情况下创建自定义列表视图?

来自分类Dev

如何在没有警告的情况下在JavaFX中使用自定义CSS?

来自分类Dev

如何在没有自定义案例类的情况下将包含大量列的镶木地板文件读取到数据集?

来自分类Dev

如何在没有自定义渲染器的情况下更改Xamarin Forms Cross Platform中Listview所选项目的背景颜色

来自分类Dev

Kotlin自定义简单DI-在调用实例化函数之前如何在没有显式声明的情况下知道类型?

来自分类Dev

Kotlin自定义简单DI-在调用实例化函数之前如何在没有显式声明的情况下知道类型?

来自分类Dev

如何在没有任何自定义表的情况下迭代最近六个月(包括当前)的循环?

来自分类Dev

如何在Android应用程序上没有活动(或在收到服务通知的情况下)打开自定义对话框

来自分类Dev

如何在不将错误处理写入函数的情况下创建自定义错误处理类

来自分类Dev

如何在不提供意图或使用快捷方式的情况下利用 Siri 创建自定义对象?

来自分类Dev

在没有jQuery的情况下触发自定义事件

Related 相关文章

  1. 1

    如何在没有SDK或自定义应用ID的情况下创建Facebook分享按钮?

  2. 2

    如何在没有jquery的情况下使用title属性创建自定义工具提示

  3. 3

    如何在没有jshint警告的情况下以角度定义自定义包?

  4. 4

    如何在没有自定义HTML标签的情况下使用AngularJS?

  5. 5

    如何在没有 <li> 的情况下显示欧芹自定义错误消息

  6. 6

    在没有RemoteView的情况下创建自定义android通知

  7. 7

    如何在没有xmlns / idQ的情况下将组添加到(VBA)自定义功能区?

  8. 8

    在没有spring的情况下如何在Hibernate Validator中使用自定义错误消息?

  9. 9

    如何在没有父级的情况下将xml膨胀为自定义视图

  10. 10

    如何在没有xmlns / idQ的情况下将组添加到(VBA)自定义功能区?

  11. 11

    如何在没有自定义类的情况下将 UILabel 添加到 UICollectionViewCell?

  12. 12

    未插入值时如何在没有自定义管道过滤的情况下显示整个表

  13. 13

    如何在没有多个背景 xml 的情况下更改自定义 toast 消息的背景?

  14. 14

    如何在没有任何框架的情况下使用自定义注释验证器 POCO(没有 asp.net,没有 mvc,没有 ORM)

  15. 15

    如何在不使用WPF的情况下在Silverlight 5中使用generic.xaml创建自定义控件?

  16. 16

    如何在不使用customElement的情况下创建自定义HTML标签?

  17. 17

    如何在不使用静态方法的情况下创建自定义Twig函数类?

  18. 18

    如何在不使用IB的情况下使用自定义UITabBar类创建UITabBarController?

  19. 19

    如何在不扩展列表活动的情况下创建自定义列表视图?

  20. 20

    如何在没有警告的情况下在JavaFX中使用自定义CSS?

  21. 21

    如何在没有自定义案例类的情况下将包含大量列的镶木地板文件读取到数据集?

  22. 22

    如何在没有自定义渲染器的情况下更改Xamarin Forms Cross Platform中Listview所选项目的背景颜色

  23. 23

    Kotlin自定义简单DI-在调用实例化函数之前如何在没有显式声明的情况下知道类型?

  24. 24

    Kotlin自定义简单DI-在调用实例化函数之前如何在没有显式声明的情况下知道类型?

  25. 25

    如何在没有任何自定义表的情况下迭代最近六个月(包括当前)的循环?

  26. 26

    如何在Android应用程序上没有活动(或在收到服务通知的情况下)打开自定义对话框

  27. 27

    如何在不将错误处理写入函数的情况下创建自定义错误处理类

  28. 28

    如何在不提供意图或使用快捷方式的情况下利用 Siri 创建自定义对象?

  29. 29

    在没有jQuery的情况下触发自定义事件

热门标签

归档