Silverlight一级菜单导航(纯XAML脚本方式实现)
来源:互联网 发布:mac说明书 编辑:程序博客网 时间:2024/05/06 08:53
这个是自己东拼西凑然后各种借鉴混合而成的一个一级菜单导航,本来之前做一个一级导航很简单的,但是老板必须得用纯XAML语言写,就有点悲剧了,也就是说所有的事件神马的都是在XAML里面搞定,最郁闷的是Silverlight没有Triggers属性。。。然后找啊找啊找啊找啊,找了N多资料,终于搞定了,激动了,
效果图是这样的。
选中和鼠标移动上去的样式一样的,具体样式可以根据自己去修改
下面是代码
<!--ListBoxItemStyle--> <Style x:Key="ListBoxItemStyle" TargetType="ListBoxItem"> <Setter Property="Cursor" Value="Hand"/> <Setter Property="Foreground" Value="White"/> <Setter Property="FontSize" Value="16"/> <Setter Property="Padding" Value="3"/> <Setter Property="Margin" Value="20,0,0,0"/> <Setter Property="HorizontalContentAlignment" Value="Center"/> <Setter Property="VerticalContentAlignment" Value="Center"/> <Setter Property="Background" Value="Transparent"/> <Setter Property="TabNavigation" Value="Local"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ListBoxItem"> <Grid Background="{TemplateBinding Background}"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="Normal"/> <VisualState x:Name="MouseOver"> <Storyboard> <DoubleAnimation Duration="0" To=".75" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="fillColor3"/> </Storyboard> </VisualState> <VisualState x:Name="Disabled"> <Storyboard> <DoubleAnimation Duration="0" To=".55" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="contentPresenter"/> </Storyboard> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="SelectionStates"> <VisualState x:Name="Unselected"/> <VisualState x:Name="Selected"> <Storyboard> <DoubleAnimation Duration="0" To=".75" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="fillColor2"/> </Storyboard> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="FocusStates"> <VisualState x:Name="Focused"/> <VisualState x:Name="Unfocused"/> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Rectangle x:Name="fillColor" Width="75" Height="25" RadiusX="5" RadiusY="5" Stroke="Black"> <Rectangle.Fill> <LinearGradientBrush StartPoint="1,0"> <GradientStop Color="#BD5E54" Offset="0.0"/> <GradientStop Color="#90322A" Offset="0.9"/> </LinearGradientBrush> </Rectangle.Fill> </Rectangle> <Rectangle x:Name="fillColor2" Width="75" Height="25" RadiusX="5" RadiusY="5" IsHitTestVisible="False" Opacity="0" Stroke="#5E1A14"> <Rectangle.Fill> <LinearGradientBrush StartPoint="1,0"> <GradientStop Color="#5C5C5C" Offset="0.0"/> <GradientStop Color="#969595" Offset="0.8"/> </LinearGradientBrush> </Rectangle.Fill> </Rectangle> <Rectangle x:Name="fillColor3" Width="75" Height="25" RadiusX="5" RadiusY="5" IsHitTestVisible="False" Opacity="0" Stroke="#5E1A14"> <Rectangle.Fill> <LinearGradientBrush StartPoint="1,0"> <GradientStop Color="#5C5C5C" Offset="0.0"/> <GradientStop Color="#969595" Offset="0.8"/> </LinearGradientBrush> </Rectangle.Fill> </Rectangle> <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}"/> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>
然后调用
其中List是一个集合,我给写在了资源文件里面,然后DIsplay和Selected是list集合对象里面的属性
<ListBox ItemsSouth={StaticResource list} SelectionChanged="lbNavigate_SelectionChanged" x:Name="lbNavigate" DisplayMemberPath = "SysModuleMTR.ModuleName" SelectedValuePath = "SysPromissions" Background="Transparent" BorderBrush="Transparent" ItemContainerStyle="{StaticResource ListBoxItemStyle}" Height="35" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <VirtualizingStackPanel Orientation="Horizontal"></VirtualizingStackPanel> </ItemsPanelTemplate> </ListBox.ItemsPanel> </ListBox>
- Silverlight一级菜单导航(纯XAML脚本方式实现)
- 纯CSS实现下拉菜单导航
- 纯CSS实现二级导航菜单效果
- android实现底部导航栏和顶部导航栏(相当于网页上的一级菜单和二级菜单)
- 纯CSS实现下拉菜单及下拉容器等(纯CSS实现导航条及导航下拉容器)
- 电商网站分类导航效果--CSS实现(一) 一级菜单
- 纯CSS菜单导航(三)竖向
- 纯CSS实现六边形布局的导航菜单
- 纯css实现导航菜单的垂直伸缩
- 纯css实现固定在网页底部菜单导航
- 纯css使用transform实现同心圆导航栏菜单
- 纯CSS实现3级导航菜单效果。
- Silverlight 中Xaml页面跳转方式
- Silverlight中Xaml页面跳转方式
- 纯HTML+CSS3 导航菜单
- 【WPF】DataGrid 纯Xaml实现文本替换
- css实现一级下拉菜单
- 用纯css实现下拉菜单的几种方式
- Javascript学习系列(六):javascript控制Cookie,保留用户登录信息
- Hoj 3130 Qie-Gao
- [读书笔记]程序员的自我修养(9)
- wordpress 如何从后台数据库修改theme
- [读书笔记]程序员的自我修养(8)
- Silverlight一级菜单导航(纯XAML脚本方式实现)
- 深入浅出MFC---Frame1
- 如何搭建nexus私服,及其使用
- 【3D】三维数据获取的运动恢复
- MFC的Main函数跑哪去了
- SecureCRT下载Linux服务器上的文件
- gcc 编译升级备忘 4.1.2 to 4.7.1
- [读书笔记]程序员的自我修养(7)
- 高质高效软件开发组织能力模型