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
分享到:
相关推荐
在本文中,我们将深入探讨如何使用Silverlight 4来实现右键菜单效果。Silverlight是一种强大的客户端应用程序开发框架,由Microsoft开发,它允许开发者创建丰富的交互式用户界面,类似于Adobe Flash。右键菜单是用户...
这种菜单通常用于网站的侧边栏,但同样适用于移动应用,特别是WP7的应用,以提供层次清晰、易于操作的导航体验。以下是对如何在WP7上实现手风琴折叠菜单的详细解释: 首先,理解手风琴菜单的基本概念。手风琴菜单因...
### .NET SilverLight4 导航菜单:详细解析与实现 #### 一、背景介绍 在.NET框架下,Silverlight是一种强大的Web应用程序开发工具,它允许开发者创建丰富的交互式用户界面(RIA)。其中,导航菜单作为任何Web应用...
Silverlight动感小菜单源码 网页应用受限于自身的浏览器范畴,不能把华丽效果完全展示,正是因为如此,在网页上诞生了无数绚丽的设计,虽然动感程度和桌面应用无法比拟,但是在UI上却下足了功夫,用户体验可以说...
在本文中,我们将深入探讨如何在Silverlight应用中自定义右键菜单,即ContextMenu。Silverlight是一种由微软开发的富互联网应用程序(RIA)框架,它提供了丰富的用户界面和交互功能。在默认情况下,Silverlight ...
本话题主要围绕如何在Silverlight中实现带图标的树形菜单以及如何通过Silverlight调用JavaScript来完成特定任务,如退出系统或关闭当前网页。 首先,让我们深入探讨Silverlight中的树形菜单。树形菜单是一种常见的...
它支持多级菜单,允许用户通过展开和折叠子菜单来浏览不同的功能。这种控件通常包括菜单项,每个菜单项可以关联一个动作或者链接到其他页面。在设计时,开发者可以通过设置属性如文本、图标、快捷键以及事件处理器来...
在本文中,我们将深入探讨Silverlight中的菜单组件,以及如何利用它来构建美观且功能强大的用户界面。 首先,菜单是任何应用程序中不可或缺的部分,它提供了用户与软件进行交互的主要途径。在Silverlight中,菜单...
在本文中,我们将深入探讨如何使用Silverlight技术来读取XML数据并生成无限级菜单,同时采用MVVM(Model-View-ViewModel)设计模式。Silverlight是微软开发的一个富客户端平台,用于创建交互式、媒体丰富的Web应用。...
创建一个简单的展开/折叠菜单项动画,可以使用以下XAML代码片段: ```xml <!-- ...模板内容... --> (UIElement.Opacity)" From="0" To="1" Duration="0:0:0.5" /> <!-- ...其他动画... --> <!-- ...
本示例“Silverlight打开右键菜单Demo”旨在展示如何在Silverlight应用中实现右键菜单功能。右键菜单在用户界面上是一种常见的交互元素,通常用于提供额外的操作选项或快捷方式。 首先,我们要理解Silverlight中的...
【银光(Silverlight)3 鱼眼菜单详解】 在Web开发领域,为了提供更加丰富和交互式的用户体验,开发者常常会使用各种UI组件。其中,“鱼眼菜单”(FishEye Menu)是一种视觉效果独特的菜单设计,它模拟了真实世界中...
这个是自己做的一个二级菜单,刚刚学,只是为了给自己保存一下而已,不过效果还行,就是代码太乱了
在本文中,我们将深入探讨Silverlight中的折叠平面3D效果,这是一种在Web应用程序中创建引人入胜的视觉体验的技术。Silverlight是微软推出的一种基于.NET Framework的富互联网应用程序(RIA)开发平台,它允许开发者...
【Silverlight3鱼眼菜单控件Demo】是一个基于微软的Silverlight 3技术开发的交互式用户界面元素,主要用于创建富有视觉吸引力的菜单系统。Silverlight是微软推出的一种富互联网应用程序(RIA)平台,它允许开发者...
本主题聚焦于使用Silverlight制作的动态菜单,这种菜单会在鼠标滑过时弹出,为用户提供更加直观且便捷的导航体验。 首先,我们来理解Silverlight菜单的基本概念。在Silverlight应用中,菜单是一种常见的控件,它...
在本文中,我们将深入探讨Silverlight 4中的菜单控件,以及如何利用ContentControl.Content属性来实现一个灵活的自定义菜单。Silverlight是一种强大的技术,它允许开发人员创建丰富的、交互式的Web应用程序,而菜单...
在本文中,我们将深入探讨Silverlight程序中的菜单设计与实现,以"Silverlight程序菜单详细例子"为例。Silverlight是一种由Microsoft开发的富互联网应用程序(RIA)平台,它允许开发者创建交互性强、视觉效果丰富的...
在本案例中,"Silverlight 导航菜单"可能是一个示例项目或教程,用于教授如何在Silverlight环境中设计和实现这样的功能。 首先,了解Silverlight导航系统的基础是必要的。Silverlight支持多种导航模型,包括Page ...