zoukankan      html  css  js  c++  java
  • Silverlight中xaml之间的跳转方案之一

    1,先在Silverlight项目中新建一个接口文件IContent.cs,内容如下:

    using System.Windows;
    namespace BookStore 
    {
        public interface IContent 
        {
            UIElement Content
            { get; set; }
        }
    }
    

      2,建立两个xaml文件:Second.xaml和SilverlightControl1.xaml

    SilverlightControl1.xaml的完整内容如下:

    <UserControl x:Class="SilverlightApplication1.SilverlightControl1"
        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.RowDefinitions>
                <RowDefinition></RowDefinition>
            </Grid.RowDefinitions>
            <StackPanel Grid.Row="0">
                <TextBlock Text="第一页"></TextBlock>
                <Button x:Name="BtnFirst" Content="First" Click="BtnFirst_Click"></Button>
            </StackPanel>
        </Grid>
    </UserControl>
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    using BookStore;
    
    namespace SilverlightApplication1
    {
        public partial class SilverlightControl1 : UserControl,IContent
        {
            public SilverlightControl1()
            {
                InitializeComponent();
            }
    
            public new UIElement Content 
            {
                get { return base.Content; }
                set { base.Content = value; }
            }
    
            private void BtnFirst_Click(object sender,EventArgs e)
            {
                (Application.Current.RootVisual as IContent).Content = new Second();
            }
    
        }
    }

    Second.xaml完整内容如下:

    <UserControl x:Class="SilverlightApplication1.Second"
        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.RowDefinitions>
                <RowDefinition Height="50"></RowDefinition>
                <RowDefinition Height="*"></RowDefinition>
            </Grid.RowDefinitions>
            <StackPanel Grid.Row="1">
                <TextBlock x:Name="TxtSecond" Text="Hello,Second!"></TextBlock>
                <Button x:Name="Btn_Second" Content="Second" Click="BtnSecond_Click"></Button>
            </StackPanel>
        </Grid>
    </UserControl>
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    using BookStore;
    
    namespace SilverlightApplication1
    {
        public partial class Second : UserControl,IContent
        {
            public Second()
            {
                InitializeComponent();
            }
    
            public new UIElement Content 
            {
                get { return base.Content; }
                set { base.Content = value; }
            }
    
            private void BtnSecond_Click(object sender,EventArgs e)
            {
                (Application.Current.RootVisual as IContent).Content = new SilverlightControl1();
            }
        }
    }
  • 相关阅读:
    odoo开发笔记 -- 新建模块扩展原模块增加菜单示例
    div内部div居中
    Css中!important的用法
    SQLServer日期格式转换
    jquery中innerheight outerHeight()与height()的区别
    简单明了区分escape、encodeURI和encodeURIComponent
    PDF预览之PDFObject.js总结
    PDFObject.js,在页面显示PDF文件
    System.IO.Directory.GetCurrentDirectory与System.Windows.Forms.Application.StartupPath的用法
    angular 模块 @NgModule的使用及理解
  • 原文地址:https://www.cnblogs.com/hongjiumu/p/2745623.html
Copyright © 2011-2022 走看看