`
topcss
  • 浏览: 100798 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
文章分类
社区版块
存档分类
最新评论

silverlight 侧边栏折叠菜单

 
阅读更多

 

xaml文件

 

 

        <!-- splitter控件 -->
        <StackPanel x:Name="SplitterStackPanel" Style="{StaticResource SplitterStackPanelStyle}"
                        Loaded="SplitterStackPanel_Loaded" SizeChanged="SplitterStackPanel_SizeChanged">

            <!-- Left -->
            <Grid Style="{StaticResource SplitterC1GridStyle}">
                <!-- TODO -->
                <Button x:Name="Btn_Test" Content="btn" Click="Button_Click" 
                        Margin="20,6,0,0" Height="25" 
                        VerticalAlignment="Top" HorizontalAlignment="Left" Width="130" />
            </Grid>

            <!-- Split -->
            <StackPanel Style="{StaticResource SplitterC2StackPanelStyle}">
                <HyperlinkButton Name="Btn_Splitter" Click="Btn_Splitter_Click"
                                 IsTabStop="False" VerticalAlignment="Center" Padding="0">
                    <Image Name="SplitIcon" Height="35" Width="7" />
                </HyperlinkButton>
            </StackPanel>

            <!-- Right -->
            <Grid Style="{StaticResource SplitterC3GridStyle}">
                <!-- TODO -->
                <navigation:Frame x:Name="ChildContentFrame" />
            </Grid>
        </StackPanel>

 

 

后台代码:

 

        private void Btn_Splitter_Click(object sender, RoutedEventArgs e)
        {
            double ContainerWidth = SplitterStackPanel.ActualWidth;

            Grid NavPanel = SplitterStackPanel.Children[0] as Grid;
            StackPanel SplitPanel = SplitterStackPanel.Children[1] as StackPanel;
            Grid ContentPanel = SplitterStackPanel.Children[2] as Grid;

            if (NavPanel.Visibility.Equals(Visibility.Collapsed))
            {
                NavPanel.Visibility = Visibility.Visible;
                ContentPanel.Width = ContainerWidth - SplitPanel.ActualWidth - NavPanel.ActualWidth;
                SplitIcon.Source = new BitmapImage(new Uri("/CQDSCC;component/Images/mini-left.png", UriKind.Relative));
            }
            else
            {
                NavPanel.Visibility = Visibility.Collapsed;
                ContentPanel.Width = ContainerWidth - SplitPanel.ActualWidth;
                SplitIcon.Source = new BitmapImage(new Uri("/CQDSCC;component/Images/mini-right.png", UriKind.Relative));
            }
            SplitPanel.Height = SplitterStackPanel.ActualHeight;
        }

        private void SplitterStackPanel_Loaded(object sender, RoutedEventArgs e)
        {
            InitialSplitterSize();
        }

        DateTime oldTime = DateTime.MinValue;

        private void SplitterStackPanel_SizeChanged(object sender, SizeChangedEventArgs e)
        {
            TimeSpan sjc = DateTime.Now.Subtract(oldTime);
            if (sjc.TotalSeconds > 1)
            {
                InitialSplitterSize();
                oldTime = DateTime.Now;
            }
        }

        private void InitialSplitterSize()
        {
            double ContainerWidth = SplitterStackPanel.ActualWidth;

            Grid NavPanel = SplitterStackPanel.Children[0] as Grid;
            StackPanel SplitPanel = SplitterStackPanel.Children[1] as StackPanel;
            Grid ContentPanel = SplitterStackPanel.Children[2] as Grid;

            if (NavPanel.Visibility.Equals(Visibility.Collapsed))
            {
                ContentPanel.Width = ContainerWidth - SplitPanel.ActualWidth;
                SplitIcon.Source = new BitmapImage(new Uri("/CQDSCC;component/Images/mini-right.png", UriKind.Relative));
            }
            else
            {
                ContentPanel.Width = ContainerWidth - SplitPanel.ActualWidth - NavPanel.ActualWidth;
                SplitIcon.Source = new BitmapImage(new Uri("/CQDSCC;component/Images/mini-left.png", UriKind.Relative));
            }
            SplitPanel.Height = SplitterStackPanel.ActualHeight;
        }
 

 

样式文件:

    <!-- Splitter StackPanel-->
    <Style x:Key="SplitterStackPanelStyle" TargetType="StackPanel">
        <Setter Property="Orientation" Value="Horizontal" />
    </Style>
    <Style x:Key="SplitterC1GridStyle" TargetType="Grid">
        <Setter Property="Width" Value="200" />
        <Setter Property="HorizontalAlignment" Value="Left" />
    </Style>
    <Style x:Key="SplitterC2StackPanelStyle" TargetType="StackPanel">
        <Setter Property="VerticalAlignment" Value="Center" />
        <Setter Property="Orientation" Value="Horizontal" />
        <Setter Property="Width" Value="6" />
        <Setter Property="Background" Value="#ffe2e2e2" />
    </Style>
    <Style x:Key="SplitterC3GridStyle" TargetType="Grid">
        <Setter Property="VerticalAlignment" Value="Stretch" />
        <Setter Property="HorizontalAlignment" Value="Stretch" />
    </Style>
 

 

 

  • 大小: 3.5 KB
  • 大小: 3.5 KB
分享到:
评论

相关推荐

    SilverLight4实现右键菜单效果

    在本文中,我们将深入探讨如何使用Silverlight 4来实现右键菜单效果。Silverlight是一种强大的客户端应用程序开发框架,由Microsoft开发,它允许开发者创建丰富的交互式用户界面,类似于Adobe Flash。右键菜单是用户...

    WP7实现手风琴折叠菜单

    这种菜单通常用于网站的侧边栏,但同样适用于移动应用,特别是WP7的应用,以提供层次清晰、易于操作的导航体验。以下是对如何在WP7上实现手风琴折叠菜单的详细解释: 首先,理解手风琴菜单的基本概念。手风琴菜单因...

    .net SilverLight4 导航菜单

    ### .NET SilverLight4 导航菜单:详细解析与实现 #### 一、背景介绍 在.NET框架下,Silverlight是一种强大的Web应用程序开发工具,它允许开发者创建丰富的交互式用户界面(RIA)。其中,导航菜单作为任何Web应用...

    Silverlight动感小菜单源码

    Silverlight动感小菜单源码 网页应用受限于自身的浏览器范畴,不能把华丽效果完全展示,正是因为如此,在网页上诞生了无数绚丽的设计,虽然动感程度和桌面应用无法比拟,但是在UI上却下足了功夫,用户体验可以说...

    SilverLight 自定义右键菜单 ContextMenu

    在本文中,我们将深入探讨如何在Silverlight应用中自定义右键菜单,即ContextMenu。Silverlight是一种由微软开发的富互联网应用程序(RIA)框架,它提供了丰富的用户界面和交互功能。在默认情况下,Silverlight ...

    Silverlight树形菜单[带图标],silverlight 调用JS

    本话题主要围绕如何在Silverlight中实现带图标的树形菜单以及如何通过Silverlight调用JavaScript来完成特定任务,如退出系统或关闭当前网页。 首先,让我们深入探讨Silverlight中的树形菜单。树形菜单是一种常见的...

    silverlight菜单控件

    它支持多级菜单,允许用户通过展开和折叠子菜单来浏览不同的功能。这种控件通常包括菜单项,每个菜单项可以关联一个动作或者链接到其他页面。在设计时,开发者可以通过设置属性如文本、图标、快捷键以及事件处理器来...

    silverlight菜单

    在本文中,我们将深入探讨Silverlight中的菜单组件,以及如何利用它来构建美观且功能强大的用户界面。 首先,菜单是任何应用程序中不可或缺的部分,它提供了用户与软件进行交互的主要途径。在Silverlight中,菜单...

    silverlight读取xml生成菜单

    在本文中,我们将深入探讨如何使用Silverlight技术来读取XML数据并生成无限级菜单,同时采用MVVM(Model-View-ViewModel)设计模式。Silverlight是微软开发的一个富客户端平台,用于创建交互式、媒体丰富的Web应用。...

    silverlight动画 Menu菜单效果!

    创建一个简单的展开/折叠菜单项动画,可以使用以下XAML代码片段: ```xml &lt;!-- ...模板内容... --&gt; (UIElement.Opacity)" From="0" To="1" Duration="0:0:0.5" /&gt; &lt;!-- ...其他动画... --&gt; &lt;!-- ...

    Silverlight打开右键菜单Demo

    本示例“Silverlight打开右键菜单Demo”旨在展示如何在Silverlight应用中实现右键菜单功能。右键菜单在用户界面上是一种常见的交互元素,通常用于提供额外的操作选项或快捷方式。 首先,我们要理解Silverlight中的...

    silverlight 3 鱼眼菜单

    【银光(Silverlight)3 鱼眼菜单详解】 在Web开发领域,为了提供更加丰富和交互式的用户体验,开发者常常会使用各种UI组件。其中,“鱼眼菜单”(FishEye Menu)是一种视觉效果独特的菜单设计,它模拟了真实世界中...

    Silverlight二级菜单

    这个是自己做的一个二级菜单,刚刚学,只是为了给自己保存一下而已,不过效果还行,就是代码太乱了

    silverlight 折叠平面的3D效果

    在本文中,我们将深入探讨Silverlight中的折叠平面3D效果,这是一种在Web应用程序中创建引人入胜的视觉体验的技术。Silverlight是微软推出的一种基于.NET Framework的富互联网应用程序(RIA)开发平台,它允许开发者...

    Silverlight3鱼眼菜单控件Demo

    【Silverlight3鱼眼菜单控件Demo】是一个基于微软的Silverlight 3技术开发的交互式用户界面元素,主要用于创建富有视觉吸引力的菜单系统。Silverlight是微软推出的一种富互联网应用程序(RIA)平台,它允许开发者...

    Silverlight做的菜单

    本主题聚焦于使用Silverlight制作的动态菜单,这种菜单会在鼠标滑过时弹出,为用户提供更加直观且便捷的导航体验。 首先,我们来理解Silverlight菜单的基本概念。在Silverlight应用中,菜单是一种常见的控件,它...

    silverlight4的菜单控件

    在本文中,我们将深入探讨Silverlight 4中的菜单控件,以及如何利用ContentControl.Content属性来实现一个灵活的自定义菜单。Silverlight是一种强大的技术,它允许开发人员创建丰富的、交互式的Web应用程序,而菜单...

    silverlight程序菜单详细例子

    在本文中,我们将深入探讨Silverlight程序中的菜单设计与实现,以"Silverlight程序菜单详细例子"为例。Silverlight是一种由Microsoft开发的富互联网应用程序(RIA)平台,它允许开发者创建交互性强、视觉效果丰富的...

    silverlight 导航菜单

    在本案例中,"Silverlight 导航菜单"可能是一个示例项目或教程,用于教授如何在Silverlight环境中设计和实现这样的功能。 首先,了解Silverlight导航系统的基础是必要的。Silverlight支持多种导航模型,包括Page ...

Global site tag (gtag.js) - Google Analytics