Windows Phone 8.1中的Border

深碍√TFBOYSˉ_ 2022-08-06 05:17 290阅读 0赞

开篇之前,照例推荐王磊老师的关于Windows 8.1内容控件和容器控件的讲解,很有帮助

链接:重新想象 Windows 8 Store Apps (3) - 控件之内容控件: ToolTip, Frame, AppBar, ContentControl, ContentPresenter; 容器控件: Border, Viewbox, Popup

在Windows Phone 8.1中的Border和Frame的用法和在Windows 8.1中几乎一模一样,但是不管怎样,好记忆不如多练

练,练习之后才发现有些东西不是那么理所当然的,而且一些细节在练习的时候也会显现出来,这一点我深有感触

好了,废话不多说了,进入正题吧。

首先是Border—边框控件,当然Border字面是就是边框,一旦叫做框了,自然可以被当做容器来“框”东西了

a.Child属性 ——- 存放Border框住的内容

b.BorderThickness —— 边框的宽度

当然设置宽度的值就有意思了,有多种i设置方法

如:BorderThickness=“5” ———— 上下左右都是5px

  1. BorderThickness="5,10" ------- 左右为5px,上下为10px
  2. BorderThickness="5,10,15,20" ------ 左边框为5px,上为10px,右为15px,下为20px

c.BorderBrush ——- 边框的画笔,说的简单点就是边框的颜色

注意可以设置为纯色,如Red,Green等

也可以设置图片哦,用图像画刷ImageBrush

d.Background ——- 边框内容的背景画笔,一样,可以纯色,可以图片

e.CornerRadius ——- 边框角的半径,说的通俗点,就像HTML5中的Border的Radius属性

这个属性很有意思,看我下面的第三个Border就知道了

当CornerRadius 的值为Border的宽度的一半时,会变成一个圆哦(前提是Border的长宽是一样)

f.ChildTransitions ——- 说是主题过渡,我没试出来啥效果,所以这里我就不误导大家了,我这个也不是很

明白

g.Width和Height ——- 这个不用说了,Border的宽和高

好了,终于可以贴代码了大家将就着看吧

我一共写了3个Border,这样才有对比性

  1. <Page
  2. x:Class="TestUnion.BorderDemo"
  3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:local="using:TestUnion"
  6. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  7. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  8. mc:Ignorable="d"
  9. Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
  10. <Page.Resources>
  11. <Storyboard x:Name="story">
  12. <DoubleAnimationUsingKeyFrames RepeatBehavior="Forever" Duration="0:0:5" AutoReverse="True"
  13. Storyboard.TargetName="rotate" Storyboard.TargetProperty="Angle">
  14. <LinearDoubleKeyFrame KeyTime="0:0:0" Value="0" />
  15. <LinearDoubleKeyFrame KeyTime="0:0:5" Value="360" />
  16. </DoubleAnimationUsingKeyFrames>
  17. </Storyboard>
  18. </Page.Resources>
  19. <Grid>
  20. <Grid.RowDefinitions>
  21. <RowDefinition/>
  22. <RowDefinition/>
  23. <RowDefinition/>
  24. </Grid.RowDefinitions>
  25. <!--设置背景,边框画刷(边框颜色),边框宽度(4个数)-->
  26. <Border Background="Green" BorderBrush="Red"
  27. BorderThickness="5,10,15,20">
  28. <Border.Child>
  29. <Grid>
  30. <Grid.RowDefinitions>
  31. <RowDefinition/>
  32. <RowDefinition/>
  33. </Grid.RowDefinitions>
  34. <!--这边为了实现那个第三个Border的BorderThickness大小不断变化而写的Slider,TextBox-->
  35. <!--如果看不懂的话,可以略过,跟Border没什么大关系,不影响对Border的认识-->
  36. <!--如果要理解也不难,只要弄懂绑定就可以了,什么Binding path=**,Element=**,Mode=**-->
  37. <Slider Grid.Row="0" x:Name="slider" Maximum="50" Minimum="1" Value="25" Width="200"
  38. HorizontalAlignment="Center" VerticalAlignment="Center"/>
  39. <TextBox x:Name="txtBox" Grid.Row="1" Width="200" Text="{Binding Path=Value,ElementName=slider,Mode=OneWay}" FontSize="15" />
  40. </Grid>
  41. </Border.Child>
  42. </Border>
  43. <!--设置背景,边框画刷,边框宽度(1个数),最重要的是CornerRadius属性-->
  44. <Border Grid.Row="1" Background="Blue" BorderBrush="Yellow"
  45. BorderThickness="5" CornerRadius="25">
  46. <Grid>
  47. <TextBlock Text="也可以直接在bordr里面写,默认是在border的child里面的"
  48. HorizontalAlignment="Center" VerticalAlignment="Center"
  49. FontSize="30" TextWrapping="Wrap"/>
  50. </Grid>
  51. </Border>
  52. <!--设置背景,边框画刷(图片),边框宽度(绑定Slider的值)-->
  53. <Border Grid.Row="2" Background="Coral"
  54. BorderThickness="{Binding ElementName=txtBox,Path=Text,Mode=OneWay}" CornerRadius="100" Width="200" Height="200"
  55. RenderTransformOrigin="0.5,0.5">
  56. <Border.BorderBrush>
  57. <ImageBrush ImageSource="Assets/food.jpg" />
  58. </Border.BorderBrush>
  59. <Border.RenderTransform>
  60. <RotateTransform x:Name="rotate" />
  61. </Border.RenderTransform>
  62. <TextBlock Text="Food" FontSize="15" HorizontalAlignment="Center" VerticalAlignment="Center" />
  63. </Border>
  64. </Grid>
  65. </Page>

运行截图:

初始界面:

20141224231001859

调节Slider,取两个极端,一个是1,一个是50:

20141224231221879 20141224231236465

同时我们可以不通过调节Slider,直接在TextBox里面输入数值也可以改变Border的BorderThickess值

在TextBox值输入100:

20141224231524812

怎么样,感觉很好玩吧。実に おもしろい

发表评论

表情:
评论列表 (有 0 条评论,290人围观)

还没有评论,来说两句吧...

相关阅读