Silverlight 自定义控件的继承问题
Silverlight 提供 UserControl, ChildWindow , Page 等.
如果不想直接从这些公共组件继承,而是继承自己的基类如 PageBase, 或自定义的UserControl\ChildWindow等.
在编译的时候,VS 会报异常,
错误 1 “MyForm.UserForm”的分部声明一定不能指定不同的基
类 D:\MyForm\UserForm.g.cs 37 26 MyForm.
记得asp.net 的page页面会自动一个page.design.cs的文件,存放一些界面元素的声明, 而Silverlight则生成 page.g.cs (存放在debug\obj\*文件夹里).
其实这个问题很好解决.
在修改CS代码,使继承某个基类的同时, 也要修改相应的xaml文件,最开头的那一行.
如是继承 UserControl, ,,, xaml 结构 <UserControl .... </UserControl>
如是继承 ChildWindow , ,,, xaml 结构 <controls:ChildWindow.... </controls:ChildWindow>
如是继承 Page, ,, , xaml 结构 <navigation:Page.... </navigation:Page>
如果继承 自定义的基类 PageBase. 那么xaml 改成 <MyPage:PageBase ...... </MyPage:PageBase>
PageBase 是类名.
MyPage PageBase类所在的空间名,这个仅接着 <MyPage:PageBase ..后定义的.是这个元素的属性之一.
例子:
<MyPage:PageBase
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
xmlns:System_Windows_Controls_Primitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls"
xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
xmlns:MyPage="clr-namespace:MyPage.Pages"
x:="MyPage..Pages.MyPage"
Title="UsedButton Page">
....
</MyPage:PageBase >
cs 代码
namespace MyPage
{
public partial class MyPage: PageBase
{
....
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现