【问题标题】:creating custom controls in silverlight在 silverlight 中创建自定义控件
【发布时间】:2011-09-17 12:58:51
【问题描述】:

您能告诉我创建自定义 silverlight 控件的正确方法是什么吗?我想制作一个由其他三个控件组成的控件:文本块、自动完成框和图像。文本块将充当自动完成框的标签,图像将提供额外的工具提示。我的问题是:我应该继承什么类型的类?如何公开内部控件的属性和事件?我发现我可以通过在容器类中创建额外的依赖属性并使用如下回调函数来设置子控件的值:

public static readonly DependencyProperty TextProperty = DependencyProperty.Register(
    "Text",
    typeof(string),
    typeof(MyCustomControl),
    new PropertyMetadata(
        default(string),
        (source, args) => (source as MyCustomControl).TxtValue.Text = (string)args.NewValue
    )
);

但是,此方法仅在子控件中的属性声明为依赖属性时才有效。但是例如在自动完成框中有一个名为 ValueMemberBinding 的属性,它不是依赖属性,我找不到如何从 MyCustomControl 公开它的方法。

【问题讨论】:

    标签: silverlight


    【解决方案1】:

    我的问题是:我应该继承什么类型的类?

    你继承自 Control 类。

    Here is a basic tutorial.

    如何公开内部控件的属性和事件?

    至于属性 - 如果您使用 xaml 设置控件内容和布局,您需要为每个元素分配一个 x:Name 属性,即您想要公开的属性。然后,它们在代码隐藏中可用,您可以将它们公开为公共属性。

    对于事件,您订阅内部元素的事件并将它们链接到您的控件公共事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 1970-01-01
      • 1970-01-01
      • 2014-03-08
      • 1970-01-01
      • 2013-02-21
      相关资源
      最近更新 更多