有关Input类组件的研究——Silverlight学习笔记[42]

Input输入类控件丰富了我们的输入形式,合理地运用之,可以加快我们录入的速度。本文将为大家介绍Input类组件中的其他4个组件ButtonSpinnerDomainUpDownNumericUpDown以及TimePicker的基础知识及其简单运用。

 

1ButtonSpinner

组件所在命名空间:

System.Windows.Controls

 

组件常用属性:

Content:获取或设置包含在该组件中的内容。

ValidSpinDirection:获取或设置有效的转动方向。

 

组件常用事件:

Spin:由用户端初始化转动事件时触发。

 

2DomainUpDown

组件所在命名空间:

System.Windows.Controls

 

组件常用属性:

CurrentIndex:获取或设置当前被选择项的索引。

FallbackItem:获取或设置一个项,该项在用户试图设置一个并不包含在域的值时显示。

InvalidInputAction:获取或设置一个值以决定该组件的行为,当用户试图设置一个并不包含在该域中的值时。

IsCyclic:获取或设置一个值用以表示该组件是否能够循环显示域中的值。

SpinnerStyle:获取或设置应用于转动按钮的样式。

Value:获取或设置该组件的值属性。

ValueMemberBinding:获取或设置将object对象转为string对象的Binding Object

ValueMemberPath:获取或设置被用于识别值的Binding Path

 

组件常用事件:

ValueChanged:当值属性已经改变后发生。

ValueChanging:当值属性正在改变中时发生。

 

3NumericUpDown

组件所在命名空间:

System.Windows.Controls

 

组件常用属性:

DecimalPlaces:获取或设置在该组件中显示的数值的数字位数。

Increment:获取或设置该组件的增长量步长。

Maximum:获取或设置该组件显示数值的最大值。

Minimum:获取或设置该组件显示数值的最小值。

 

组件常用事件:

ValueChanged:当值属性已经改变后发生。

ValueChanging:当值属性正在改变中时发生。

 

4TimePicker

组件所在命名空间:

System.Windows.Controls

 

组件常用属性:

ActualCulture:获取被该组件用于格式化和解析的实际文化。

ActualFormat:获取在该组件中的时间的实际显示格式。

ActualTimeGlobalizationInfo:获取被用于该组件的实际TimeGlobalization信息。

ActualTimeParsers:获取将被该组件进行解析的实际TimeParsers

ActualTimePickerPopup:获取被用于该组件的时间选择的实际弹出框。

Culture:获取或设置被该组件用于格式化和解析的文化。

Format:获取或设置在该组件中的时间的显示格式。

Maximum:获取或设置该组件的最大的有效时间。

Minimum:获取或设置该组件的最小的有效时间。

Popup:获取或设置该组件的下拉弹出框的模式。

PopupMinutesInterval:获取或设置弹出框中“分钟”的间隔数。

PopupSecondsInterval:获取或设置弹出框中“秒”的间隔数。

PopupTemplate:获取或设置弹出框的模板。

PopupTimeSelectionMode:获取或设置弹出框的时间选择模式。

TimeGlobalizationInfo:获取或设置策略的对象,确定如何控制DateTimeCultureInfo的交互。

TimeParsers:获取或设置该分析时使用的文字时间TimeParsers集合。

TimeUpDownStyle:获取或设置应用到的TimePicker控制TimeUpDown部分的样式。

 

组件常用事件:

ValueChanged:当值属性已经改变后发生。

ValueChanging:当值属性正在改变中时发生。

 

 

实例:

详细的说明在代码注释中给出。

MainPage.xaml文件代码

<UserControl

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

    mc:Ignorable="d" xmlns:inputToolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit" x:Class="SilverlightClient.MainPage"

    d:DesignWidth="320" d:DesignHeight="480">

   

    <Grid x:Name="LayoutRoot" Width="320" Height="480" Background="White">

 

        <inputToolkit:ButtonSpinner x:Name="myBS" Height="32" HorizontalAlignment="Left" Margin="8,38,0,0" VerticalAlignment="Top" Content="Test !" Width="132" ValidSpinDirection="Increase" RenderTransformOrigin="0.5,0.5" FontSize="18.667"/>

        <inputToolkit:TimePicker x:Name="myTP" PopupButtonMode="Hover" Height="30" HorizontalAlignment="Left" Margin="8,110,0,0" VerticalAlignment="Top" Width="132" FontSize="18.667"/>

        <inputToolkit:NumericUpDown x:Name="myNUD" Height="30" Margin="169,110,8,0" VerticalAlignment="Top" FontSize="18.667" Width="143"/>

        <inputToolkit:DomainUpDown ValueMemberPath="EmployeeID" FontSize="34" x:Name="myDUD" Margin="8,0,23,115" Width="289" IsCyclic="True" Height="75" VerticalAlignment="Bottom" d:LayoutOverrides="Height">

            <!--设置DomainUpDown的项模板-->

            <inputToolkit:DomainUpDown.ItemTemplate>

                <DataTemplate>

                    <Grid MinWidth="230" Background="#aa000000">

                        <TextBlock Foreground="#22ffffff" Margin="4+0,2+0" FontSize="14" Text="员工信息:"/>

                        <StackPanel HorizontalAlignment="Right">

                            <TextBlock HorizontalAlignment="Center" Foreground="White" FontSize="14" Text="{Binding EmployeeID}" Padding="2" />

                            <TextBlock HorizontalAlignment="Center" Foreground="White" FontSize="14" Text="{Binding EmployeeName}" Padding="2" />

                            <TextBlock HorizontalAlignment="Center" Foreground="White" FontSize="14" Text="{Binding EmployeeAge}" Padding="2" />

                        </StackPanel>

                    </Grid>

                </DataTemplate>

            </inputToolkit:DomainUpDown.ItemTemplate>   

        </inputToolkit:DomainUpDown>

        <TextBlock Height="26" HorizontalAlignment="Left" Margin="8,8,0,0" VerticalAlignment="Top" Width="132" Text="ButtonSpinner" TextWrapping="Wrap"/>

        <TextBlock Height="16" HorizontalAlignment="Left" Margin="8,80,0,0" VerticalAlignment="Top" Width="147" Text="TimerPicker[Pop Normal]" TextWrapping="Wrap"/>

        <TextBlock Height="26" Margin="169,80,0,0" VerticalAlignment="Top" Text="NumericUpDown" TextWrapping="Wrap" HorizontalAlignment="Left" Width="132"/>

        <TextBlock Height="26" HorizontalAlignment="Left" Margin="8,0,0,211" VerticalAlignment="Bottom" Width="132" Text="DomainUpDown" TextWrapping="Wrap"/>

        <TextBlock x:Name="tbResult" Height="53" HorizontalAlignment="Right" Margin="0,17,19,0" VerticalAlignment="Top" Width="135" TextWrapping="Wrap"/>

        <inputToolkit:TimePicker x:Name="myTP1" FontSize="18.667" Height="31" HorizontalAlignment="Left" Margin="8,182,0,0" VerticalAlignment="Top" Width="132">

            <!--设置TimePicker的弹出框-->

            <inputToolkit:TimePicker.Popup>

                <inputToolkit:RangeTimePickerPopup />

            </inputToolkit:TimePicker.Popup>

        </inputToolkit:TimePicker>

        <TextBlock Height="16" HorizontalAlignment="Left" Margin="8,153,0,0" VerticalAlignment="Top" Width="147" Text="TimerPicker[PopRange]" TextWrapping="Wrap"/>

        <TextBox x:Name="tbIncrement" Height="22" HorizontalAlignment="Right" Margin="0,153,8,0" VerticalAlignment="Top" Width="57" TextWrapping="Wrap"/>

        <TextBox x:Name="tbDecimalPlaces" Height="22" HorizontalAlignment="Right" Margin="0,179,8,0" VerticalAlignment="Top" Width="57" TextWrapping="Wrap"/>

        <TextBlock Height="22" Margin="0,153,69,0" VerticalAlignment="Top" Text="Increment:" TextWrapping="Wrap" HorizontalAlignment="Right" Width="64"/>

        <TextBlock Height="22" Margin="0,179,66,0" VerticalAlignment="Top" Text="DecimalPlaces:" TextWrapping="Wrap" HorizontalAlignment="Right" Width="85"/>

        <CheckBox x:Name="chkIsEditable" Height="20" HorizontalAlignment="Right" Margin="0,205,8,0" VerticalAlignment="Top" Width="75" Content="IsEditable"/>

        <Button x:Name="btnChange" HorizontalAlignment="Right" Margin="0,225,8,222" Width="111" Content="Change!"/>

 

    </Grid>

</UserControl>

 

MainPage.xaml.cs文件代码

using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Animation;

using System.Windows.Shapes;

 

namespace SilverlightClient

{

    //业务辅助类

    public class Employees

    {

        public int EmployeeID { get; set; }

        public string EmployeeName { get; set; }

        public int EmployeeAge { get; set; }

    }

 

    public partial class MainPage : UserControl

    {

        public MainPage()

        {

            InitializeComponent();

            //注册事件触发处理

            this.Loaded += new RoutedEventHandler(MainPage_Loaded);

            this.myBS.Spin += new EventHandler<SpinEventArgs>(myBS_Spin);

            this.btnChange.Click += new RoutedEventHandler(btnChange_Click);

        }

        //更改NumericUpDown组件的属性

        void btnChange_Click(object sender, RoutedEventArgs e)

        {

            if (tbIncrement.Text != String.Empty && tbDecimalPlaces.Text != String.Empty)

            {

                myNUD.Increment = Convert.ToDouble(tbIncrement.Text);

                myNUD.DecimalPlaces = Convert.ToInt32(tbDecimalPlaces.Text);

            }

            if (chkIsEditable.IsChecked == true)

            {

                myNUD.IsEditable = true;

            }

            else

            {

                myNUD.IsEditable = false;

            }

        }

 

        void myBS_Spin(object sender, SpinEventArgs e)

        {

            tbResult.Text = e.Direction.ToString();

        }

 

        void MainPage_Loaded(object sender, RoutedEventArgs e)

        {

            myDUD.ItemsSource = GetEmployees();

        }

        //DomainUpDown提供数据源

        private List<Employees> GetEmployees()

        {

            List<Employees> returnedValue = new List<Employees>();

            returnedValue.Add(new Employees() { EmployeeID = 1, EmployeeName = "张三", EmployeeAge = 23 });

            returnedValue.Add(new Employees() { EmployeeID = 2, EmployeeName = "李四", EmployeeAge = 24 });

            returnedValue.Add(new Employees() { EmployeeID = 3, EmployeeName = "王五", EmployeeAge = 25 });

            returnedValue.Add(new Employees() { EmployeeID = 4, EmployeeName = "赵六", EmployeeAge = 26 });

            returnedValue.Add(new Employees() { EmployeeID = 5, EmployeeName = "钱七", EmployeeAge = 27 });

            returnedValue.Add(new Employees() { EmployeeID = 6, EmployeeName = "孙八", EmployeeAge = 28 });

            return returnedValue;

        }

    }

}

 

最终效果图:


图一:正常模式的TimePicker弹出框

 


图二:时间范围选择模式的TimePicker弹出框

 

作者:Kinglee
文章出处:Kinglee’s Blog ( http://www.cnblogs.com/Kinglee/)
版权声明:本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值