Pivot-Header的花式效果
要实现如上图所示的效果分为三步:
1.重写Pivot样式,去掉Pivot的Header或者是直接使用默认的Pivot的样式然后不写Header
2.使用一个ListView或者是横向的StackPanel或者是横向的Grid加上一个Button代替Header的效果(我使用的是Grid,建议使用ListView)
3.在Pivot的SelelctionChanged事件中以及当做Header的Button的Click事件做一个同步
首先Pivot的Item你想放什么就放什么
然后就是代替Header的问题:我用的Grid套了5个Button
<Grid Grid.Row="" x:Name="TopBar" Background="#FDF187">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button x:Name="Header0" Style="{StaticResource GrayLightButton}"
Background="Transparent" Grid.Column="" Content="设置" FontFamily="Segoe MDL2 Assets,Segoe UI"
FontSize="" HorizontalAlignment="Center" VerticalAlignment="Center" Click="Header0_Click"/>
<Button x:Name="Header1" Style="{StaticResource GrayLightButton}"
Background="Transparent" Grid.Column="" Content="鸣谢" FontFamily="Segoe MDL2 Assets,Segoe UI"
FontSize="" HorizontalAlignment="Center" VerticalAlignment="Center" Click="Header1_Click"/>
<Button x:Name="Header2" Style="{StaticResource GrayLightButton}"
Background="Transparent" Grid.Column="" Content="开源与引用" FontFamily="Segoe MDL2 Assets,Segoe UI"
FontSize="" HorizontalAlignment="Center" VerticalAlignment="Center" Click="Header2_Click"/>
<Button x:Name="Header3" Style="{StaticResource GrayLightButton}"
Background="Transparent" Grid.Column="" Content="更新记录" FontFamily="Segoe MDL2 Assets,Segoe UI"
FontSize="" HorizontalAlignment="Center" VerticalAlignment="Center" Click="Header3_Click"/>
<Button x:Name="Header4" Style="{StaticResource GrayLightButton}"
Background="Transparent" Grid.Column="" Content="关于" FontFamily="Segoe MDL2 Assets,Segoe UI"
FontSize="" HorizontalAlignment="Center" VerticalAlignment="Center" Click="Header4_Click"/>
</Grid>
最后就是在后台代码中实现PivotItem与Grid的同步:
Pivot的SelelctionChanged事件实现Button的文字和颜色切换
private void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Header0.Content = "设置";
Header0.FontSize = ;
Header0.Foreground = new SolidColorBrush(Color.FromArgb(, , , ));
Header1.Content = "鸣谢";
Header1.FontSize = ;
Header1.Foreground = new SolidColorBrush(Color.FromArgb(, , , ));
Header2.Content = "开源与引用";
Header2.FontSize = ;
Header2.Foreground = new SolidColorBrush(Color.FromArgb(, , , ));
Header3.Content = "更新记录";
Header3.FontSize = ;
Header3.Foreground = new SolidColorBrush(Color.FromArgb(, , , ));
Header4.Content = "关于";
Header4.FontSize = ;
Header4.Foreground = new SolidColorBrush(Color.FromArgb(, , , ));
switch (pivot.SelectedIndex)
{
case :
Header0.Content = "";//Segoe MDL2 Assets图标
Header0.FontSize = ;
Header0.Foreground = new SolidColorBrush(Color.FromArgb(, , , ));
break;
case :
Header1.Content = "";//Segoe MDL2 Assets图标
Header1.FontSize = ;
Header1.Foreground = new SolidColorBrush(Color.FromArgb(, , , ));
break;
case :
Header2.Content = "";//Segoe MDL2 Assets图标
Header2.FontSize = ;
Header2.Foreground = new SolidColorBrush(Color.FromArgb(, , , ));
break;
case :
Header3.Content = "";//Segoe MDL2 Assets图标
Header3.FontSize = ;
Header3.Foreground = new SolidColorBrush(Color.FromArgb(, , , ));
break;
case :
Header4.Content = "";//Segoe MDL2 Assets图标
Header4.FontSize = ;
Header4.Foreground = new SolidColorBrush(Color.FromArgb(, , , ));
break;
}
}
然后就是点击Button实现PivotItem的切换
以第一个Button举个栗子,以此类推
private void Header0_Click(object sender, RoutedEventArgs e)
{
pivot.SelectedIndex = ;
pivot.SelectedItem = pivot.Items[];
}
就这样就可以实现如上效果了。
还可以做一个扩展:在Grid中Button下面加一扁扁的矩形,然后后台代码处理矩形的隐藏和出现,可以实现更加好看的效果。
抛砖引玉,如有更炫酷的方法请联系我~
Pivot-Header的花式效果的更多相关文章
- win10 uwp 修改Pivot Header 颜色
我们在xaml创建一个Pivot <Pivot Grid.Row="1"> <PivotItem Header="lindexi">&l ...
- android自定义listview实现header悬浮框效果
之前在使用iOS时,看到过一种分组的View,每一组都有一个Header,在上下滑动的时候,会有一个悬浮的Header,这种体验觉得很不错,请看下图: 上图中标红的1,2,3,4四张图中,当向上滑动时 ...
- react better-scroll 编写类似手机chrome的header显示隐藏效果
关键代码 const H = 50; // header的高度 const H2 = H / 2; let cy = 0; class Home extends Component { @observ ...
- Panorama和Pivot控件
Windows Phone提供了Panorama和Pivot这两种控件供用户横向切换导航的方式来显示具有内容比较相关的页面.本文主要对这两个控件进行描述,包括如何使用,以及一些最佳实践. 其中包括如下 ...
- 在后台代码中动态生成pivot项并设置EventTrigger和Action的绑定
最近在做今日头条WP的过程中,遇到需要动态生成Pivot项的问题.第一个版本是把几个频道写死在xaml里了,事件绑定也写在xaml里,每个频道绑定一个ObservableCollection<A ...
- Pivot 和 Global 的一些总结
相信大家一定有在 Unity 編輯器上看到這樣功能 這邊會跟大家說明這項功能有什麼用處 Pivot 意思為,輔助編輯的工具標示,會顯示在第一個選取的物件身上. Center 意思為,輔助 ...
- dotnet 从入门到放弃的 500 篇文章合集
本文是记录我从入门到放弃写的博客 博客包括 C#.WPF.UWP.dotnet core .git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到 ...
- Observable 示例之 Windows Phone 列表内项目逐个加载
在写 Windows phone应用性能优化(一)的时候,在 ListBox 的项加载的时候,添加了一些简单的动画. 其实在 Windows Phone 的应用中使用 Blend 设计动画是很容易的, ...
- 2018-8-10-dotnet-从入门到放弃的-500-篇文章合集
title author date CreateTime categories dotnet 从入门到放弃的 500 篇文章合集 lindexi 2018-08-10 19:16:52 +0800 2 ...
随机推荐
- mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现
项目结构 基础入门可参考:mybatis学习笔记(一)-- 简单入门(附测试Demo详细过程) 开始体验 1.新建项目,新建类MybatisUtil.java,路径:src/util/Mybatis ...
- oracle linux 7.3 下用dtrace 跟踪 mysql-community-server-5.6.20
第一部分:oracle linux 7.3 dtrace 安装: http://public-yum.oracle.com/ 内核升极到 [root@server1 SPECS]# uname - ...
- Java 多态透析 详细理解
1:什么是多态 一个对象的多种状态 (老师)(员工)(儿子) 教师 a =老钟; 员工 b =老钟; 2:多态体现 父类引用变量指向了子类的对象 Father f = new Son ...
- SPFA 算法详解
适用范围:给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便 派上用场了. 我们约定有向加权图G不存在负权回路,即最短路径 ...
- python cookbook第三版学习笔记十:类和对象(一)
类和对象: 我们经常会对打印一个对象来得到对象的某些信息. class pair: def __init__(self,x,y): self.x=x self. ...
- FreeRTOS——资源管理
1. 多任务系统存在一个潜在的风险:资源管理. 2. 基本临界区:taskENTER_CRITICAL() 与 taskEXIT_CRITICAL() 或 taskENTER_CRITICAL_FRO ...
- Tomcat启动中的一些问题
(a)在eclipse中启动tomcat,在控制台加载的配置却是其他项目的,有时候也不是自己工作空间里的? 出现的一个原因是:在我tomcat的webapp目录下,我放了一个其他项目的war包,在to ...
- saveOrupdate和 merge的区别
merge和saveOrUpdate方法区别在于:merge方法是把我们提供的对象转变为托管状态的对象:而saveOrUpdate则是把我们提供的对象变成一个持久化对象:说的通俗一点就是:saveOr ...
- vue数据驱动作用域问题
需求是这样的,如图 点击禁用后,变成启用,但是结果却不让人满意 我们先来看一下错误代码: //conponet控件里的内容 html内容: <div> <button @click. ...
- HDOJ-2006求奇数的乘积
Problem Description 给你n个整数,求他们中所有奇数的乘积. Input 输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数 ...