zoukankan      html  css  js  c++  java
  • 手把手玩转win8开发系列课程(19)

    这节,我们来建立一个用户控件瞧一瞧

    建立用户控件

    以前,我都说过这么个事情,如果把所有的文件写在一个xaml文件中,这样一个页面就会变得特别的冗长。所以,我更加的喜欢吧flyouts定义成用户控件。注意用户控也是包含一个xmal设计文件和一个源代码文件。(我这里不会重点深入xaml的实质,但这部分的源码我会在这里展示出来)。为了更好的管理,我在项目中建立了一个相应的文件夹叫做Flyouts的文件夹,并且使用原始的用户控件的模板创建一个新用户控件叫做HomeZipCodeFlyout,相应的源代码如图所示:

     1 <UserControl
     2   x:Class="MetroGrocer.Flyouts.HomeZipCodeFlyout"
     3   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     4   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     5   xmlns:local="using:MetroGrocer.Flyouts"
     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   d:DesignHeight="130"
    10   d:DesignWidth="350">
    11     <!--Popup 这个弹出的对话框-->
    12   <Popup x:Name="HomeZipCodePopup"
    13   IsLightDismissEnabled="True" Width="350" Height="130" >
    14     <!--布局控件  背景-->
    15     <StackPanel Background="Black">
    16        <!--Border  边框控件-->
    17       <Border Background="#85C54C" BorderThickness="4">
    18         <StackPanel>
    19           <StackPanel Orientation="Horizontal" Margin="10">
    20             <TextBlock Style="{StaticResource PopupTextStyle}"
    21                 Text="Home Zip Code:" VerticalAlignment="Center"
    22                 Margin="0,0,10,0" />
    23             <TextBox Height="40" Width="150" FontSize="20"
    24                  Text="{Binding Path=HomeZipCode, Mode=TwoWay}" />
    25           </StackPanel>
    26           <Button Click="OKButtonClick" HorizontalAlignment="Center"
    27               Margin="10">OK</Button>
    28         </StackPanel>
    29       </Border>
    30     </StackPanel>
    31   </Popup>
    32 </UserControl>

    命名及规范,命名及知意。flyout的控件的作用就是允许用户更改ViewModel中的HomeZipCode属性的值,作用在这个项目中不是很大,但他保持了项目很好的扩展性。

    说一说UserControl吧!他在项目中更多的是以的模板使用的,你定义xaml,是你要创建哪些元素在模板中。当你创建flyouts这个控件的时候,这内容是在Popup的里面。我的布据中是用文本框得到相应的输入,在控件中,用户点击某某按钮,能得到相应值,就是我们周围加了像这样各种各样的控件元素了。

    我在popup元素中设置了3个非常非常重要属性,每个属性都粗体显示。这个IsLightDismissEnabled属性,意思是用户点击了popup以外的部分,这个popup控件是否消失了,默认值是真,为什么了,这样能够给用户很好的弹出对话框的体验。

    至于宽度和高度这样的属性,还有什么好说的了,我必须要设置,并且要设置好,因为他要有足够的大小显示文字内容,至于这些属性怎么用于定位。后面的篇幅我会给予了说明。

    特别提醒,只用运用了精确的高度和宽度,才能够使其popup控件定位。

    哝——一个popup控件的界面已经做好了。

  • 相关阅读:
    mysql 索引
    私有变量 _变量名 、__变量名、__变量名__的区别
    python中 is 和 == 的区别
    赋值,浅拷贝,深拷贝
    Django model字段类型清单
    (转)nginx uwsgi wsgi django 这些东西究竟是什么关系
    线性结构
    复杂度_最大子列和问题(2)
    复杂度_最大子列和问题(1)
    应用实例——最大子列和问题
  • 原文地址:https://www.cnblogs.com/manuosex/p/2803590.html
Copyright © 2011-2022 走看看