假设我想创建一个具有Image和2 ImageSource属性的ImageButton类,然后在.xaml文件中创建ImageButton实例,以便我可以根据我想要的布局放置它。
我已经尝试在任何类之外的正确项目命名空间中创建类,使用空参数声明构造函数,然后在xaml中添加
xmlns:local="clr-namespace:projectNameSpace"
...
<m:ImageButton></ImageButton>
它没有用,然后尝试了其他代码,
xmlns:m="clr-namespace:projectNameSpace"
...
<m:ImageButton></ImageButton>
但据说 无法分配到集合,期望类型UIElement和类型&#34; ImageButton&#34;不包含任何可访问的构造函数
有没有办法引用c#类并在wp8 xaml中创建一个实例?还是不可能?
答案 0 :(得分:1)
如果您希望您的类成为UI的一部分,则需要从UIElement类的一个子类派生(基本上,任何控件)
根据MSDN,UIElement类不应该直接继承:
UIElement不公开公共构造函数 通常,您不直接从UIElement或FrameworkElement派生类。更常用的派生自定义类的基类是这些类:
- 未密封的特定控件(例如,TextBox)
- 控制基类(Control,ContentControl,UserControl)
- 导航元素(页面,框架)
- 面板类(基类Panel,或特定的非密封实现,如Grid)
在你的情况下,我猜一个Button是最适合继承的类。
此外,如果你想创建一个自定义控件,你需要记住一个视觉方面 - 扩展基本控件的模板可能是一个很好的起点。