zoukankan      html  css  js  c++  java
  • Windows Phone开发中,减小(改变)Pivot控件PivotItem的Header(标题)字号

    此博文为本人原创,转载请注明出处:http://www.cnblogs.com/zhangdong92/p/4126902.html

    Pivot,枢轴控件在WP中很常见,比如QQ、自带的照片(WP8.1中)使用的就是这种控件和布局,Pivot中可以包含若干个PivotItem(枢轴项),每个PivotItem可以理解为一个子页面,PivotItem中有Header属性,用来设置PivotItem的标题。

    但是,这个Header默认居然不能设置字号!默认的个人认为太大,占据屏幕空间太多,至少在本人之前写的一个应用中需要缩小Header的字号。

    百度、谷歌了一大圈,纠结几天时间,终于找到一种改变Header字号的方法。

    首先看xaml代码(部分关键代码):PivotPage1.xaml

     1         <!--枢轴控件-->
     2         <controls:Pivot x:Name="pivot1" Title="掌上课表" Grid.RowSpan="7" Loaded="pivot1_Loaded" Margin="0" BorderThickness="0" Padding="0,40,0,0">
     3             <controls:Pivot.Background>
     4                 <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
     5                     <GradientStop Color="#FF0695F7"/>
     6                     <GradientStop Color="#FF4040FF" Offset="1"/>
     7                 </LinearGradientBrush>
     8             </controls:Pivot.Background>
     9             <!--枢轴项日-->
    10             <controls:PivotItem x:Name="PivotItem0" Header="星期日" Width="480" HorizontalAlignment="Center">
    11                 <Image Height="400" VerticalAlignment="Bottom" Width="400" Source="/Images/muyouke.png" HorizontalAlignment="Center" Margin="0,0,0,200"/>
    12 
    13             </controls:PivotItem>
    14 
    15             <!--枢轴项1-->
    16             <controls:PivotItem x:Name="PivotItem1" Header="星期一" Width="480" HorizontalAlignment="Center" Margin="12,-54,12,0">
    17                 <Grid x:Name="grid1" Width="480" Height="620" ShowGridLines="True" VerticalAlignment="Top">
    18                     <Grid.RowDefinitions>
    19                         <RowDefinition Height="10*"/>
    20                         <RowDefinition Height="120*"/>
    21                         <RowDefinition Height="120*"/>
    22                         <RowDefinition Height="120*"/>
    23                         <RowDefinition Height="120*"/>
    24                         <RowDefinition Height="120*"/>
    25                         <RowDefinition Height="10*"/>
    26                     </Grid.RowDefinitions>
    27 
    28                     <TextBlock HorizontalAlignment="Left" Grid.Row="1" Text="课程名称" 
    29                                VerticalAlignment="Top" FontSize="40"
    30                                Foreground="#FF828282" Margin="70,0,0,0" Padding="0,8,0,0" FontFamily="Microsoft YaHei UI" Visibility="Collapsed"/>
    31                     <TextBlock HorizontalAlignment="Left" Margin="70,50,0,0" Grid.Row="1" Text="教师名" VerticalAlignment="Top" FontSize="25" Foreground="#FFC8C8C8" Width="150" Visibility="Collapsed" />
    32                     <TextBlock HorizontalAlignment="Left" Margin="220,50,0,0" Grid.Row="1" Text="3号教学楼237" VerticalAlignment="Top" FontSize="25" Foreground="#FFC8C8C8" Width="264" Visibility="Collapsed" />
    33                     <TextBlock HorizontalAlignment="Left" Margin="70,0,0,0" Grid.Row="1" Text="1-15周" VerticalAlignment="Bottom" FontSize="25" Foreground="#FFC8C8C8" Width="150" Visibility="Collapsed"/>
    34                     <TextBlock HorizontalAlignment="Left" Margin="220,50,0,0" Grid.Row="1" Text="备注备注,我是备注" FontSize="25" Foreground="#FFC8C8C8" Width="264" VerticalAlignment="Bottom" TextTrimming="WordEllipsis" Visibility="Collapsed" />
    35                     
    36                     <StackPanel x:Name="sp11" HorizontalAlignment="Left" Height="120" VerticalAlignment="Bottom" Width="480" Tap="StackPanel_Tap" Grid.Row="1" Background="#00000000" Opacity="0" Canvas.ZIndex="1">
    37                     <!--↓ 长按弹出的菜单-->
    38                     <toolkit:ContextMenuService.ContextMenu>
    39                             <toolkit:ContextMenu>
    40                                 <toolkit:MenuItem x:Name="mt11fz" Header="复制" Tap="MenuItem_Tapfz" />
    41                                 <toolkit:MenuItem x:Name="mt11jq" Header="剪切" Tap="MenuItem_Tapjq" />
    42                                 <toolkit:MenuItem x:Name="mt11zt" Header="粘贴" Tap="MenuItem_Tapzt" />
    43                                 <toolkit:MenuItem x:Name="mt11sc" Header="删除" Tap="MenuItem_Tapsc" />
    44                             </toolkit:ContextMenu>
    45                         </toolkit:ContextMenuService.ContextMenu>
    46                     </StackPanel>
    47                     <StackPanel x:Name="sp12" HorizontalAlignment="Left" Height="120" VerticalAlignment="Bottom" Width="480" Tap="StackPanel_Tap" Grid.Row="2" Background="#00000000" Opacity="0" Canvas.ZIndex="1">
    48                         <toolkit:ContextMenuService.ContextMenu>
    49                             <toolkit:ContextMenu>
    50                                 <toolkit:MenuItem x:Name="mt12fz" Header="复制" Tap="MenuItem_Tapfz" />
    51                                 <toolkit:MenuItem x:Name="mt12jq" Header="剪切" Tap="MenuItem_Tapjq" />
    52                                 <toolkit:MenuItem x:Name="mt12zt" Header="粘贴" Tap="MenuItem_Tapzt" />
    53                                 <toolkit:MenuItem x:Name="mt12sc" Header="删除" Tap="MenuItem_Tapsc" />
    54                             </toolkit:ContextMenu>
    55                         </toolkit:ContextMenuService.ContextMenu>
    56                     </StackPanel>
    57                     <StackPanel x:Name="sp13" HorizontalAlignment="Left" Height="120" VerticalAlignment="Bottom" Width="480" Tap="StackPanel_Tap" Grid.Row="3" Background="#00000000" Opacity="0" Canvas.ZIndex="1">
    58                         <toolkit:ContextMenuService.ContextMenu>
    59                             <toolkit:ContextMenu>
    60                                 <toolkit:MenuItem x:Name="mt13fz" Header="复制" Tap="MenuItem_Tapfz" />
    61                                 <toolkit:MenuItem x:Name="mt13jq" Header="剪切" Tap="MenuItem_Tapjq" />
    62                                 <toolkit:MenuItem x:Name="mt13zt" Header="粘贴" Tap="MenuItem_Tapzt" />
    63                                 <toolkit:MenuItem x:Name="mt13sc" Header="删除" Tap="MenuItem_Tapsc" />
    64                             </toolkit:ContextMenu>
    65                         </toolkit:ContextMenuService.ContextMenu>
    66                     </StackPanel>
    67                     <StackPanel x:Name="sp14" HorizontalAlignment="Left" Height="120" VerticalAlignment="Bottom" Width="480" Tap="StackPanel_Tap" Grid.Row="4" Background="#00000000" Opacity="0" Canvas.ZIndex="1">
    68                         <toolkit:ContextMenuService.ContextMenu>
    69                             <toolkit:ContextMenu>
    70                                 <toolkit:MenuItem x:Name="mt14fz" Header="复制" Tap="MenuItem_Tapfz" />
    71                                 <toolkit:MenuItem x:Name="mt14jq" Header="剪切" Tap="MenuItem_Tapjq" />
    72                                 <toolkit:MenuItem x:Name="mt14zt" Header="粘贴" Tap="MenuItem_Tapzt" />
    73                                 <toolkit:MenuItem x:Name="mt14sc" Header="删除" Tap="MenuItem_Tapsc" />
    74                             </toolkit:ContextMenu>
    75                         </toolkit:ContextMenuService.ContextMenu>
    76                     </StackPanel>
    77                     <StackPanel x:Name="sp15" HorizontalAlignment="Left" Height="120" VerticalAlignment="Bottom" Width="480" Tap="StackPanel_Tap" Grid.Row="5" Background="#00000000" Opacity="0" Canvas.ZIndex="1">
    78                         <toolkit:ContextMenuService.ContextMenu>
    79                             <toolkit:ContextMenu>
    80                                 <toolkit:MenuItem x:Name="mt15fz" Header="复制" Tap="MenuItem_Tapfz" />
    81                                 <toolkit:MenuItem x:Name="mt15jq" Header="剪切" Tap="MenuItem_Tapjq" />
    82                                 <toolkit:MenuItem x:Name="mt15zt" Header="粘贴" Tap="MenuItem_Tapzt" />
    83                                 <toolkit:MenuItem x:Name="mt15sc" Header="删除" Tap="MenuItem_Tapsc" />
    84                             </toolkit:ContextMenu>
    85                         </toolkit:ContextMenuService.ContextMenu>
    86                     </StackPanel>
    87                     
    88                 </Grid>
    89             </controls:PivotItem>
    90 
    91         </controls:Pivot>

    减小Header字号,使用如下的C#代码:

    1         private void SmallHeaderSize()//减小pivot中header字体,设为40
    2         { 
    3                 PivotItem pi0 = pivot1.Items[0] as PivotItem;
    4                 TextBlock tbHot0 = new TextBlock { Text = "星期日", FontSize = 40}; pi0.Header = tbHot0;
    5                 PivotItem pi1 = pivot1.Items[1] as PivotItem;
    6                 TextBlock tbHot1 = new TextBlock { Text = "星期一", FontSize = 40 }; pi1.Header = tbHot1;
    7                
    8         }

    上述代码中,pivot1是Pivot的name属性(理解为Pivot的变量名)。代码作用大致为取出Pivot中的PivotItem,设置属性Header为一个动态创建的TextBlock,而该TextBlock的各种属性都是可以设置的。

    此方法是搜索很久找到的,但原始出处已经记不清了……

    效果图如下:(上边的xaml代码中去除了部分代码,效果图中是没有去除的)

    也可以下载应用“掌上课表”查看效果。博文中的代码来自于掌上课表源码,应用商店连接:

    http://www.windowsphone.com/zh-cn/store/app/%E6%8E%8C%E4%B8%8A%E8%AF%BE%E8%A1%A8/a2560593-d4e5-4a44-bb30-65154e428957

     

    第一次写技术类博文,以后会将更多开发中的新的、发现的方法技巧等发到博客园。欢迎感兴趣者共同学习交流!

    如果此博文有不妥之处,敬请留言告知本人。

     

    PS:本人还有过对于WP使用“传输我的数据”导出短信的*.vmsg格式文件结构的研究(稍后会写在博客上),并且写了一个电脑端打开此类文件管理短信的小工具SmsManager,编辑后的文件还可以作为短信导入手机。

    到Dospy查看详情:

    【SmsManager】Windows Phone手机PC端短信管理工具V1.0发布!【个人开发】 - 诺基亚Lumia 620论坛 - WP8论坛|WP论坛|诺基亚WP8系统手机|WP8软件|WP8游戏 - dospy
    http://bbs.dospy.com/thread-17066243-1-747-1.html

  • 相关阅读:
    Get distinct count of rows in the DataSet
    单引号双引号的html转义符
    PETS Public English Test System
    Code 39 basics (39条形码原理)
    Index was outside the bounds of the array ,LocalReport.Render
    Thread was being aborted Errors
    Reportviewer Error: ASP.NET session has expired
    ReportDataSource 值不在预期的范围内
    .NET/FCL 2.0在Serialization方面的增强
    Perl像C一样强大,像awk、sed等脚本描述语言一样方便。
  • 原文地址:https://www.cnblogs.com/zhangdong92/p/4126902.html
Copyright © 2011-2022 走看看