Silverlight:页面/控件继承的二种写法

前言:此乃水文,高手绕道.

只要是稍微象样点的项目,一般都会先弄一个PageBase或UserControlBase做基类,然后其它页面/用户控件继承自它,标准的写法如下:

先定义基类: PageBase.cs

using System.Windows.Controls;

namespace sl_test
{
    public class PageBase:UserControl
    {

    }
}

然后创建一个用户控件Page1继承自它:

后端cs部分:

namespace sl_test
{
    public partial class Page1 : PageBase
    {
        public Page1()
        {
            InitializeComponent();
        }
    }
}

对于silverlight而言,光这样是不够的,前端xaml部分也要修改:

<local:PageBase x:Class="sl_test.Page1"
    xmlns:local="clr-namespace:sl_test"
    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"
    d:DesignHeight="300" d:DesignWidth="400">
    
    <Grid x:Name="LayoutRoot" Background="White">

    </Grid>
</local:PageBase>

即xaml要继承一个类,得同时改xaml.cs与xaml文件二处。

今天又看到了另一种偷懒的做法,可以只修改Xaml即可,方法就是直接去掉xaml.cs文件中的:PageBase,即将:

public partial class Page1 :PageBase

变成:

public partial class Page1

这样简单多了,算是silverlight/WPF特有的写法吧。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏landv

实现用VB.Net/(C#)开发K/3 BOS 插件的真正可行方法

16010
来自专栏IT开发技术与工作效率

VBA常用程序——每个表都应该有

18630
来自专栏大内老A

浅谈ASP.NET的Postback

说道ASP.NET的Postback,就得说Web Page的生命周期,但是Web Page的生命周期却不是三言两语就能够说得清楚的,所以在这里单纯站的编程的角...

23850
来自专栏黒之染开发日记

【easeljs】事件汇总

文章说明:为了方便我自己查找easeljs的所有事件,所以我从easeljs的文档里抄过来加上自己的翻译,会慢慢补全,漏了的,错了的,评论一下我会补上去哦。(不...

13920
来自专栏挖坑填坑

angular使用NG ZORRO来构建博客展示项目(简单实现展示页面)

这两个并没有设计成core模块的组件,但是也放在这里,不知道放在哪里合适。有的可以不用设计成angular模块或者组件,初学者真烦恼

29330
来自专栏逆向技术

PE格式第四讲,数据目录表之导入表,以及IAT表

           PE格式第四讲,数据目录表之导入表,以及IAT表 一丶IAT(地址表) 首先我们思考一个问题,程序加载的时候会调用API,比如我们以前写的...

23750
来自专栏web前端教室

[每周日-先行者课堂笔记] -- react版的倒计时实现

image.png 各位同学们大家好,今天是4月9号周日,今天我们继续来做“倒计时”这个前端组件。之前我们是使用原生js来实现的,其实更多的只是实现了功能。 这...

38770
来自专栏GreenLeaves

C# 文件操作系列一

在.Net环境中,所有关于文件操作的类都在System.IO命名空间下,注:在修改文件时,安全性显得格外重要,但是本随笔不过多讲述安全性,这里假设我们有足够的权...

26850
来自专栏XAI

ZeroClipboard实现多个浏览器兼容的复制文本到剪贴板的功能

ZeroClipboard实现多个浏览器兼容的复制文本到剪贴板的功能 本人在项目中使用的js版本。为了方便大家下载。直接粘贴代码给大家看。版本是1.2.0 /*...

28470
来自专栏.NET后端开发

Highcharts使用指南

摘要 Highcharts图表控件是目前使用最为广泛的图表控件。本文将从零开始逐步为你介绍Highcharts图表控件。通过本文,你将学会如何配置Highcha...

33050

扫码关注云+社区

领取腾讯云代金券