【问题标题】:create instance of c# class from xaml wp8从 xaml wp8 创建 c# 类的实例
【发布时间】:2015-09-14 01:45:54
【问题描述】:

假设我想创建一个具有 Image 和 2 ImageSource 属性的 ImageButton 类,然后在 .xaml 文件中创建 ImageButton 的实例,以便我可以根据我想要的布局放置它。

我已经尝试在任何类之外的正确项目命名空间中创建类,使用空参数声明构造函数,然后在我添加的 xaml 中

xmlns:local="clr-namespace:projectNameSpace"
...
<m:ImageButton></ImageButton>

不工作,然后尝试其他代码,

xmlns:m="clr-namespace:projectNameSpace"
...
<m:ImageButton></ImageButton>

但是据说 无法分配给集合,预期类型 UIElement 并且类型“ImageButton”不包含任何可访问的构造函数

有没有一种方法可以引用 c# 类并在 wp8 xaml 中创建一个实例?还是不可能?

【问题讨论】:

    标签: c# xaml windows-phone-8


    【解决方案1】:

    如果您希望您的类成为 UI 的一部分,则需要从 UIElement 类的子类之一派生(基本上,任何控件)

    根据MSDN,不应该直接继承UIElement类:

    UIElement 不公开公共构造函数。
    通常,您不会直接从 UIElement 或 FrameworkElement 派生类。派生自定义类更常用的基类是这些类:
    - 未密封的特定控件(例如,TextBox)
    - 控件基类(Control、ContentControl、UserControl)
    - 导航元素(页面、框架)
    - Panel 类(基类 Panel,或特定的非密封实现,如 Grid)

    在你的情况下,我猜 Button 是最适合继承的类。

    此外,如果您想创建自定义控件,您还需要记住视觉方面 - 扩展基本控件的模板可能是一个很好的起点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 2023-03-31
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多