闲时扯谈 - Silverlight母版页的实现

闲时扯谈 - Silverlight母版页的实现,第1张

概述一个做sl的朋友到处问Silverlight怎么实现类似于母版页这样的框架功能。 查了一下 Silverlight确实没有提供类似的功能……但是 开玩笑 攻城狮耶 这么点小东西非得提供了才能用吗? 以下是解决方案: 新建一个随便什么的用户控件 我的叫做ManageFrame 首先是后台.cs代码 木有神马麻烦的 把继承的类改成 ContentControl public partial class

一个做sl的朋友到处问Silverlight怎么实现类似于母版页这样的框架功能。

查了一下 Silverlight确实没有提供类似的功能……但是 开玩笑 攻城狮耶 这么点小东西非得提供了才能用吗?

以下是解决方案:


新建一个随便什么的用户控件 我的叫做ManageFrame

首先是后台.cs代码 木有神马麻烦的 把继承的类改成 ContentControl


public partial class ManageFrame : ContentControl    {        public ManageFrame()        {            InitializeComponent();        }    }

把继承类也改成


<ContentControl x:Class="IWorld.admin.Controls.ManageFrame"    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"    xmlns:local="clr-namespace:IWorld.admin.Controls;assembly=IWorld.admin.Controls"    mc:Ignorable="d" MinWIDth="1020"></ContentControl>

然后写模版


<ContentControl.Template>        <ControlTemplate>            <!--主体框架-->            <GrID x:name="root">                <GrID.Background>                    <linearGradIEntBrush EndPoint="1,0.5" StartPoint="0,0.5">                        <GradIEntStop color="#FFF0F0F0" Offset="1"/>                        <GradIEntStop color="#FFF6F6F6"/>                    </linearGradIEntBrush>                </GrID.Background>                <GrID.ColumnDeFinitions>                    <ColumnDeFinition WIDth="220"></ColumnDeFinition>                    <ColumnDeFinition></ColumnDeFinition>                </GrID.ColumnDeFinitions>                <!--以下是侧边栏-->                <local:SIDetool SelectedText_Menu="{Binding SelectedText_Menu}"                                     SelectedText_Page="{Binding SelectedText_Page}"                                      Username="{Binding Username}"                                     Group="{Binding Group}"                                     JumpCommand="{Binding JumpCommand}"                                    EditaccountCommand="{Binding EditaccountCommand}"                                     logoutCommand="{Binding logoutCommand}"/>                <!--以上是侧边栏-->                <!--以下是界面框架-->                <GrID GrID.Column="1">                    <GrID.RowDeFinitions>                        <RowDeFinition></RowDeFinition>                        <RowDeFinition Height="75"></RowDeFinition>                    </GrID.RowDeFinitions>                    <!--界面内容将插插入在这里-->                    <ContentControl Foreground="{TemplateBinding Property=Foreground}">                        <ContentPresenter/>                    </ContentControl>                    <!--以下是页脚-->                    <!--技术支持图标-->                    <local:TechnicalSupport_button WIDth="75" Height="75" GrID.Row="1"                                                       HorizontalAlignment="Right" margin="0,30,0"/>                    <!--版权信息-->                    <TextBlock Text="版权所有 盗版必究 © 2013" margin="0,109,10" GrID.Row="1"                               HorizontalAlignment="Right" VerticalAlignment="Bottom"                               Foreground="{TemplateBinding Property=Foreground}"/>                    <!--以上是页脚-->                </GrID>                <!--以上是界面框架-->            </GrID>        </ControlTemplate>    </ContentControl.Template>

注:侧边栏是自定义控件 可以无视 大家不用去思考local这个名称空间是哪里来的(可以无视它)

模版随便写 最重要的是 <ContentPresenter/> 

把它放在你想要插入内容的地方 然后 就可以了


用起来 这样用:

<local:ManageFrame>        <GrID>            <TextBlock Text="Hrllo world"/>        </GrID>    </local:ManageFrame>

它使用时候唯一要注意的 也是唯一的缺点 

它里面只能放一个子元素 理由不解释 请自行查阅相关资料 知道结果就可以了

不过这不影响使用 在所有你想弄的东西之外再套一个grID就可以了——麻烦那么一点点 不过 能用

总结

以上是内存溢出为你收集整理的闲时扯谈 - Silverlight母版页的实现全部内容,希望文章能够帮你解决闲时扯谈 - Silverlight母版页的实现所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1018052.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存