代码之家  ›  专栏  ›  技术社区  ›  tsimon

如何在.xaml文件(Silverlight)中指定不同的基类?

  •  14
  • tsimon  · 技术社区  · 17 年前

    2 回复  |  直到 17 年前
        1
  •  34
  •   Scott Solmer    10 年前

    默认情况下,所有Silverlight“页面”实际上都是从UserControl派生的。所以,这就是你需要做的。举个简单的例子,当然你可能想声明Dependency属性、事件等等。

    1.使用公共属性创建类

    public class YourUserControlBase : UserControl
    {
        public bool SomeProperty {get; set; }
    }
    

    2.创建/修改页面的XAML

    为本地程序集和包含新基类的名称空间添加XML名称空间,并记住要保留 x:Class

    这是我更新的文件:

    <local:YourUserControlBase
    xmlns:local="clr-namespace:SilverlightApplication1"
    x:Class="SilverlightApplication1.MainPage"
    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:DesignWidth="640" d:DesignHeight="480">
    

    修改后面的代码

    (Page.xaml.cs文件,而不是自动生成的文件)正确继承 YourUserControlBase :

    public partial class MainPage : YourUserControlBase
    {
        public MainPage()
        {
            InitializeComponent();
        }
    }
    

        2
  •  6
  •   Jérôme Verstrynge    15 年前

    另外:当你的基类位于其他程序集(项目)中时,你可以这样做:

    xmlns:Custom="clr-namespace:SilverlightApplication1;assembly=[Other.Assembly]"