zoukankan      html  css  js  c++  java
  • silverlight中常用的控件

    一、布局控件

    Canvas面板是一种很基础的布局面板,它支持对其中的控件采用绝对坐标定位。Canvas.Top和Canvas.Left。Canvas.ZIndex附加属性:如果指定了两个控件相对于父容器Canvas同样的边距,则后面声明的控件父覆盖前面声明的控件。这时我们可以使用Canvas.ZIndex属性来改变它们的显示顺序。

    StackPanel是一种简单的布局面板,它支持用行或列的方式来定位其中包含的控件。StackPanel 常用于安排页面上的一个很小的 UI 部分。默认情况下,Orientation 属性为Vertical,     即默认情况下所有的子元素会垂直的排列显示。

            Orientation -StackPanel控件内对象的排列方向

                Horizontal- 水平排列

                Vertical - 垂直排列

    Grid 控件是最灵活的布局面板,它支持用多行和多列的方式排布控件。在<Grid> 标签内,通过<Grid.RowDefinitions> 和<Grid.ColumnDefinitions> 属性来定义Grid 的行和列,使用Grid.Row和Grid.Column两个附加属性指定子元素在Grid中显示的位置。ShowGridLines属性设为True,能够显示出边框线。Grid.RowSpan获取或设置一个值,该值指示对Grid的行进行合并的总行数。

        Grid - 表格式布局模式

           Grid.RowDefinitions - 用于定义 Grid 中的行

           Grid.ColumnDefinitions - 用于定义 Grid 中的列

            Grid.ShowGridLines- 显示网格

       

            Grid.Row - 控件所在的 Grid 的行的索引

            Grid.Column - 控件所在的 Grid 的列的索引

            Grid.RowSpan - 合并行。 控件所在行,以及控件所在行之后的需要连续合并的行的总行数

            Grid.ColumnSpan- 合并列。 控件所在列,以及控件所在列之后的需要连续合并的列的总列数

       

            Width - 宽度

            MinWidth - 最小宽度

            MaxWidth - 最大宽度

            Height - 高度

            MinHeight - 最小高度

            MaxHeight - 最大高度

       

        Width 和 Height 的可用值

        Auto - 自动设置为一个合适的值。默认值

        Pixel - 像素值

    * - 比例值。如 * 就是全部,2* & 8* 就是分别占20%和80%

    二、<Border> 控件

    设置其CornerRadius 为 10,以得到圆角效果,并在其中添加一些文本来创建标题。

            <!--

            BorderThickness- 边框的宽度(像素值:上下左右;左右,上下;左,上,右,下)

            BorderBrush - 边框的颜色

            CornerRadius - 边框角的半径

            -->

            <Border BorderThickness="1,3,5,7" BorderBrush="Red" CornerRadius="10" Width="120" Margin="5">

                <TextBlock Text="红色Border" ToolTipService.ToolTip="红色Border" TextAlignment="Center" />

            </Border>

     

            <!--

           Border.BorderBrush - 继承自 System.Windows.Media.Brush 的对象

            -->

            <Border BorderThickness="3" CornerRadius="10" Width="120" Margin="5">

                <TextBlock Text="红色Border" ToolTipService.ToolTip="红色Border" TextAlignment="Center" />

                <Border.BorderBrush>

                    <ImageBrush ImageSource="http://silverlight.net/Themes/silverlight/images/logo.jpg"/>

                </Border.BorderBrush>

            </Border>

    三、<WatermarkedTextBox> 控件 <显示其他控件时>

    水印效果文本框,可以在文本框未获得焦点之前显示一段文字提示信息,也可以显示其它的控件。

            <local:WatermarkedTextBoxCanvas.Top="140" Canvas.Left="50" Width="300"Height="50" >

                <local:WatermarkedTextBox.Watermark>

                    <ImageSource="/admin.jpg" HorizontalAlignment="Left"></Image>

                </local:WatermarkedTextBox.Watermark>

            </local:WatermarkedTextBox>

    注意:admin.jpg存放在ClientBin目录下(blend5中没有此控件)

     

    四、ToggleButton控件     

       Content -ToggleButton上显示的内容

            Click -ToggleButton的单击事件

            Cursor - 鼠标移动到ToggleButton上面时,鼠标指针的样式

                Arrow - 箭头

                Hand - 手形

                Wait - 沙漏

                IBeam - “I”字形

                Stylus - 点

                Eraser - 橡皮

                None - 无

            IsThreeState - 是否是 有3个状态的ToggleButton

                false - 通常的两状态。默认值

                true - 有3个状态,分别为:true, false, null。也就是说ToggleButton.IsChecked 是 bool? 类型

            Checked -ToggleButton的IsChecked变为true时所触发的事件

            Unchecked -ToggleButton的IsChecked变为false时所触发的事件

            Indeterminate -ToggleButton的IsChecked变为null时所触发的事件

            IsEnabled - ToggleButton是否有效

           ToggleButton.Content - ToggleButton上显示的内容

            ClickMode - 触发单击事件的类型[System.Windows.Controls.ClickMode枚举]

                ClickMode.Press- 鼠标左键单击

               ClickMode.Release - 鼠标左键单击并放开

               ClickMode.Hover - 鼠标经过

    五、ScrollViewer控件

    当其中显示的内容超过它自身的大小时,就会有滚动条出现。通过属性HorizontalScrollBarVisibility和VerticalScrollBarVisibility来控制纵向和横向滚动条是否出现。

            <!--

            ScrollViewer.Content- ScrollViewer控件中的内容

           HorizontalScrollBarVisibility - 水平滚动条的显示状态

           VerticalScrollBarVisibility - 垂直滚动条的显示状态

                Auto - 自动根据ScrollViewer的宽和高,以及内容的宽和高,来决定是否显示滚动条

                Disabled - 不显示,但是可以通过键盘或鼠标在显示内容中的移动或拖动操作,来看到被遮挡的内容

                Hidden - 不显示,而且无法看到被遮挡的内容

                Visible - 显示滚动条

            -->

            <ScrollViewer Margin="5" Width="200" Height="200" HorizontalAlignment="Left"HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">

                <ScrollViewer.Content>

                    <Image Source="/Silverlight20;component/Images/Logo.jpg" Width="300" />

                </ScrollViewer.Content>

            </ScrollViewer>

     

            <ScrollViewer Margin="5" Width="100" Height="100" HorizontalAlignment="Left"HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">

                <TextBox>

                    <TextBox.Text>

                       aaa

    bbb

    ccc

    ddd

                    </TextBox.Text>

                </TextBox>

            </ScrollViewer>


    六、TextBlock控件

    属性TextWrapping设置为Wrap,表示自动换行。

            <!--

            Text -TextBlock上显示的值

            -->

            <TextBlock Text="TextBlock" />

     

            <!--

            Foreground - 字体颜色

            -->

            <TextBlock Text="红色的TextBlock" Foreground="Red" />

     

            <!--

            要以XAML的方式直接显示引号等特殊字请使用相应的HTML编码

            -->

            <TextBlock Text="带引号的&quot;TextBlock&quot;"/>

     

            <!--

            FontFamily - 字体

            FontSize - 字体大小

            FontWeight - 字形粗细度[System.Windows.FontWeights枚举]

            FontStyle - 字形斜体否[System.Windows.FontStyles枚举]

            TextDecorations- 字体下划线 [System.Windows.TextDecorations枚举]

            FontStretch - 字体间距[System.Windows.FontStretches枚举]

            -->

            <TextBlock Text="常用属性TextBlock" FontFamily="宋体" FontSize="36" FontWeight="Bold"FontStyle="Italic" TextDecorations="Underline" FontStretch="Normal" />

     

            <!--

            TextAlignment -文字排列[System.Windows.TextAlignment枚举]

            Run - 文本内容

            LineBreak - 换行符

            LineHeight - 每行行高

            TextWrapping - 文本限制(超过限制是否换行)

                NoWrap - 永不换行

                Wrap - 超过限制则换行

           LineStackingStrategy - 控制行高的策略

                MaxHeight -TextBlock内每行的行高 以LineHeight值 和 每行自身所设置的行高值 间的最大值为准

               BlockLineHeight - TextBlock内每行的行高 以LineHeight值为准

            -->

            <TextBlock VerticalAlignment="Center" TextAlignment="Center" LineHeight="10"LineStackingStrategy="MaxHeight" Width="200" TextWrapping="NoWrap">

                <Run FontSize="20" Foreground="Maroon" Text="MaroonMaroonMaroonMaroon"/>

                <LineBreak/>

                <Run Foreground="Teal" Text="Teal" />

                <LineBreak/>

                <Run FontSize="30" Foreground="SteelBlue" Text="SteelBlue" />

            </TextBlock>

     

           

            <TextBlock VerticalAlignment="Center" TextAlignment="Center" LineHeight="10"LineStackingStrategy="BlockLineHeight" Width="200" TextWrapping="Wrap">

                <Run FontSize="20" Foreground="Red" Text="RedRedRedRedRedRedRedRedRed"/>

                <LineBreak/>

                <Run Foreground="Green" Text="Green" />

                <LineBreak/>

                <Run FontSize="30" Foreground="Blue" Text="Blue" />

            </TextBlock>

    ToolTip控件

    ToolTip控件很多时候都用于其它控件的内嵌控件,如Button控件的ToolTip附加属性等。

    注意: ToolTip控件用作内嵌控件时,应采用ToolTipService.ToolTip属性设置,如下

    <Button x:Name="myButton" Content="TextTooltip" Canvas.Top="80" Canvas.Left="130" Width="240"Height="100" FontSize="20" Background="Red" ToolTipService.ToolTip="This is a summitbutton"/>

           

    Rectangle

    矩形显示框:Fill——颜色;Margin——边距;Stroke——边框颜色;StrokeThickness——边框厚度

            <!--矩形-->

            <!--

            RadiusX - 边角圆弧的X轴半径

            RadiusY - 边角圆弧的Y轴半径

            -->

            <Rectangle Width="200" Height="120" Stroke="Black" StrokeThickness="6" RadiusX="10" RadiusY="30" />

    Slider  

          <!--

            Minimum -Slider控件的最小值。参见基类System.Windows.Controls.Primitives.RangeBase

            Maximum -Slider控件的最大值。参见基类System.Windows.Controls.Primitives.RangeBase

            Value - Slider控件的值。参见基类System.Windows.Controls.Primitives.RangeBase

            SmallChange - 按上/下/左/右键的时候,Slider控件的Value值的变化跨度。参见基类System.Windows.Controls.Primitives.RangeBase

            ValueChanged -Slider控件的值发生变化时所触发的事件

            Orientation - 控件的放置方向

                Horizontal- 水平放置

                Vertical - 垂直放置

           IsDirectionReversed - 滑块的初始位置

                True - 上到下 或者 右到左

                False - 下到上 或者 左到右

            -->

            <Slider Height="400" HorizontalAlignment="Left" Orientation="Vertical" IsDirectionReversed="True"Minimum="0" Maximum="50" SmallChange="5" ValueChanged="Slider_ValueChanged"  />

            <TextBlock x:Name="lblMsg" HorizontalAlignment="Left" />

    后台获值代码:

                //RoutedPropertyChangedEventArgs<double>.OldValue - Slider控件的原值

                //RoutedPropertyChangedEventArgs<double>.NewValue - Slider控件的新值

     

                lblMsg.Text = string.Format("原值:{0} 新值:{1}", e.OldValue.ToString(), e.NewValue.ToString());

    TextBox 

           <!--

            TextBox 结合 Calendar,经典的选择日期的方式

           SelectedDateFormat - 被选中的日期的显示格式[System.Windows.Controls.DatePickerFormat枚举]

               SelectedDateFormat.Short - 简短格式。默认值。如2008-10-10

               SelectedDateFormat.Long - 非简短格式。如2008年10月10日

            -->

            <basics:DatePicker Width="200" SelectedDateFormat="Short"></basics:DatePicker>

     

     

    Image     

       <!--

            Source - 程序目录下的图片文件地址

            -->

            <Image Source="/Logo.jpg" Margin="5" Width="100"  />

           

            <!--

            Source - 程序集内的图片文件地址

                资源型文件 - [/程序集名;component/路径]

                内容型文件 - [/路径]

            -->

            <Image Source="/Silverlight20;component/Images/Logo.jpg" Margin="5" Width="200" />

     

            <!--

            Source - 互联网的图片文件地址

            -->

            <Image Source="http://silverlight.net/Themes/silverlight/images/logo.jpg" Margin="5" Width="100" />

    十二、Calendar控件   

        SelectedDatesChanged - 选中日期后所触发的事件

            DisplayDateEnd- 此日期之后的日期不予显示

           DisplayDateStart - 此日期之前的日期不予显示

            FirstDayOfWeek- 控件所显示的每星期的第一天为星期几 [System.DayOfWeek枚举]

            DisplayMode - 控件的显示模式[System.Windows.Controls.DisplayMode枚举]

               DisplayMode.Month - 标题显示年月,内容显示日期。默认值

               DisplayMode.Year - 标题显示年,内容显示月

               DisplayMode.Decade - 标题显示一个十年的区间,内容显示年

            IsTodayHighlighted- 是否高亮显示今天的日期

                //Calendar.SelectedDate - 选中的日期

                //Calendar.SelectedDates - 选中的多个日期集合

                //Calendar.BlackoutDates - 不允许选择的日期集合

                //Calendar.BlackoutDates.AddDatesInPast() - 禁止选择今天之前的日期

                //Calendar.BlackoutDates.Clear() - 清除 不允许选择的日期集合 的设置

                //CalendarSelectionMode.None - 禁止选择日期

                //CalendarSelectionMode.SingleRange - 可以选择多个日期,连续日期(Shift键配合)

                //CalendarSelectionMode.MultipleRange - 可以选择多个日期,任意日期(Ctrl键配合)

                //CalendarSelectionMode.SingleDate - 只能选择一个日期

    Calendar控件的命名空间和其他控件一样,都是在System.Windows.Controls下。但是其是在System.Windows.Controls.dll程序集中定义的,所以要引入相应的xml命名空间

    // Calendar.SelectedDate - 选中的日期    // Calendar.SelectedDates - 选中的多个日期集合

    // Calendar.BlackoutDates - 不允许选择的日期集合

    // Calendar.BlackoutDates.AddDatesInPast() - 禁止选择今天之前的日期

    // Calendar.BlackoutDates.Clear() - 清除 不允许选择的日期集合 的设置

     // CalendarSelectionMode.None - 禁止选择日期

     // CalendarSelectionMode.SingleRange - 可以选择多个日期,连续日期(Shift键配合)

    // CalendarSelectionMode.MultipleRange - 可以选择多个日期,任意日期(Ctrl键配合)

    // CalendarSelectionMode.SingleDate - 只能选择一个日期         

      <!-- TextBox

         SelectedDatesChanged - 选中日期后所触发的事件

         DisplayDateEnd - 此日期之后的日期不予显示

         DisplayDateStart - 此日期之前的日期不予显示

         FirstDayOfWeek - 控件所显示的每星期的第一天为星期几[System.DayOfWeek枚举]

         DisplayMode - 控件的显示模式[System.Windows.Controls.DisplayMode枚举]

         DisplayMode.Month - 标题显示年月,内容显示日期。默认值

         DisplayMode.Year - 标题显示年,内容显示月

         DisplayMode.Decade - 标题显示一个十年的区间,内容显示年

         IsTodayHighlighted - 是否高亮显示今天的日期     --!〉 

        Canvas - 绝对布局模式

            Canvas.Left - 与上一层 Canvas 的 Y轴 间的距离,左上角为原点

            Canvas.Top - 与上一层 Canvas 的 X轴 间的距离,左上角为原点

            IsChecked - 是否被选中

            IsThreeState - 是否是 有3个状态 的CheckBox

    false - 通常的两状态。默认值

    true - 有3个状态,分别为:true, false, null。也就是说 CheckBox.IsChecked 是 bool? 类型

    IsEnabled - CheckBox是否有效

            CheckBox.Content - CheckBox所对应的内容

            Checked - 被选中后所触发的事件

            Unchecked - 被取消选中后所触发的事件

            Click - 被单击后所触发的事件

            后台邦定方式构造ComboBox

            DisplayMemberPath - 数据源中需要被显示出来的字段名称

            MaxDropDownHeight - 下拉框的最大下拉高度

    十三、Button控件 

    Content - 按钮上显示的内容

            Click - 按钮的单击事件

            Cursor - 鼠标移动到按钮上面时,鼠标指针的样式

                Arrow - 箭头

                Hand - 手形

                Wait - 沙漏

                IBeam - “I”字形

                Stylus - 点

                Eraser - 橡皮

                None - 无

            Padding - 容器内的内容与容器边缘的填充距离(像素值:上下左右;左右,上下;左,上,右,下)

    IsEnabled - 按钮是否有效

            Button.Content- 按钮上显示的内容

            ClickMode - 触发单击事件的类型[System.Windows.Controls.ClickMode枚举]

               ClickMode.Press - 鼠标左键单击

               ClickMode.Release - 鼠标左键单击并放开

        ClickMode.Hover - 鼠标经过

    后台获值:((System.Windows.Controls.Button)sender).Tag.ToString()

     

    十四、CheckBox控件

     

         IsChecked - 是否被选中

            IsThreeState - 是否是 有3个状态的CheckBox

                false - 通常的两状态。默认值

                true - 有3个状态,分别为:true, false, null。也就是说 CheckBox.IsChecked 是 bool? 类型

            IsEnabled -CheckBox是否有效

           CheckBox.Content - CheckBox所对应的内容

            Checked - 被选中后所触发的事件

            Unchecked - 被取消选中后所触发的事件

            Click - 被单击后所触发的事件

    后台提示框代码:

                HtmlWindowhtml = HtmlPage.Window;

                html.Alert(string.Format("chk1:{0} chk2: {1} chk3: {2} chk4: {3}",

                    chk1.IsChecked, chk2.IsChecked,chk3.IsChecked, chk4.IsChecked));

     

    十五、ComboBox控件

     

     

        <!--

            XAML方式构造ComboBox

            -->

            <ComboBox x:Name="cbo" Width="200" Margin="5">

                <ComboBoxItem Tag="ComboBoxItem1" Content="ComboBoxItem1"/>

                <ComboBoxItem Tag="ComboBoxItem2" Content="ComboBoxItem2"/>

                <ComboBoxItem Tag="ComboBoxItem3" Content="ComboBoxItem3"/>

            </ComboBox>

           

            <!--

            后台邦定方式构造ComboBox

           DisplayMemberPath - 数据源中需要被显示出来的字段名称

           MaxDropDownHeight - 下拉框的最大下拉高度

            -->

            <ComboBox x:Name="cbo2" DisplayMemberPath="Name" MaxDropDownHeight="100" Width="200"Margin="5" />

    后台绑定:  void BindData()

            {    var source= new Data.SourceData();

                //设置 ComboBox 的数据源

                cbo2.ItemsSource =source.GetData().Take(10);

            }

    后台获值:   (cbo.SelectedItem as ComboBoxItem).Tag.ToString()   // (cbo.SelectedItemas ComboBoxItem).Content.ToString()

    //若ComboBox未命名,则使用 (((ComboBox)sender).SelectedItemas ComboBoxItem).Tag.ToString()

     

    注明SourceData.cs

    using System.Collections.ObjectModel;

     

    namespace Silverlight20.Data

    {

        publicclass SourceData

        {

            //  ObservableCollection<T> 内置实现了INotifyCollectionChanged 接口(可直接应用于 OneWay 和 TwoWay 的绑定模式)

            publicObservableCollection<SourceDataModel> GetData()

            {

                varsource = new ObservableCollection<SourceDataModel>();

     

                for(int i = 0; i < 100; i++)

                {

                    source.Add(

                        new SourceDataModel

                        {

                            Name = "Name" + i.ToString().PadLeft(4, '0'),

                            Age = new Random(i).Next(20, 60),

                            DayOfBirth =DateTime.Now,

                            Male = Convert.ToBoolean(i % 2)

                        });

                }

     

                returnsource;

            }

        }

    }

    GridSplitter

    GridSplitter控件总是配合Grid使用,实现对Grid的空间的调整。

    1、HorizontalAlignment、VerticalAligment、RezizeDirection是GridSplitter三个重要属性。

    2、默认情况下,ResizeDirection的值为GridResizeDirecion.Atuo,这时,只要把VerticalAligment改为Stretch,GridSplitter就变成了垂直的。在这种情况下,如果HorizontalAlignment为Left,Splitter将会改变Splitter所在的列以及Splitter左边的列两者之间的宽度分配,如果HorizontalAlignment为Rgitht,Splitter将会改变Splitter所在的列以及Splitter右边的列两者之间的宽度分配,如果HorzontalAlignment为Center,现在移动Splitter不会改变它所在的列的宽度,而是影响Splitter两边列的宽度;如果把HorizontalAlignment改为Stretch,这是GridSplitter就变成了水平的。水平的GridSplitter改变的是高度,规则和改变宽度的一样。

    3、当ResizeDirection设置为非Auto的值后,可以改变上述规则。如果设置值为Columns,表示在列之间分配空间,如果设置为Rows表示在行之间分配空间。

    4、推荐不要把GridSplitter放在已有Element的格子里面,让整个GridSplitter放在单独的格子里面,以专注分割。

            <Rectangle Grid.Row="0" Grid.Column="0" Fill="Red"/>

            <Rectangle Grid.Row="0" Grid.Column="2" Fill="Green" />

            <Rectangle Grid.Row="2" Grid.Column="0" Fill="Blue" />

            <Rectangle  Grid.Row="2" Grid.Column="2" Fill="Yellow"/>

           

            <!--

           HorizontalAlignment属性用来指定文本水平方向的对齐方式.

    ShowsPreview - 拖动GridSplitter 时,是要即时显示拖动结果(false 默认值),还是要先预览GridSplitter被拖动的位置(true)

            -->

            <basics:GridSplitter Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" ShowsPreview="True"HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />

            <basics:GridSplitter Grid.Row="0" Grid.Column="1" Grid.RowSpan="3" HorizontalAlignment="Stretch"VerticalAlignment="Stretch" />

     

    GridSplitter

     

          NavigateUri - 超级链接的目标地址

            TargetName - 目标名

           GridSplitter.Content - 超级链接所显示的内容

     

    ListBox

         <!--

           SelectionChanged - ListBox中某个对象被选中后所触发的事件

            -->

            <ListBox Margin="5" Width="200" Height="100" SelectionChanged= "ListBox_SelectionChanged">

                <ListBoxItem Content="ListBoxItem01"/>

                <ListBoxItem Content="ListBoxItem02"/>

                <ListBoxItem Content="ListBoxItem03"/>

            </ListBox>

           

            <!--

            ListBox中可以包含任何对象

            -->

            <ListBox Margin="5" Width="200">

                <TextBlock Text="TextBlock" />

                <TextBox Text="TextBox" />

                <Button Content="Button" />

            </ListBox>

    另:

            <!--

           ListBox.ItemTemplate - ListBox 的选项模板

               DataTemplate - 手工定义 ListBox 的选项数据

            -->

            <ListBox x:Name="ListBox1" Margin="5" Width="200" Height="100">

                <ListBox.ItemTemplate>

                    <DataTemplate>

                       <StackPanel Orientation="Horizontal">

                           <TextBlock Text="{Binding Name}" Margin="5" />

                            <TextBlock Text="{Binding Age}" Margin="5" />

                       </StackPanel>

                    </DataTemplate>

                </ListBox.ItemTemplate>

            </ListBox>

     

       后台获值及提示框代码:

                //ListBox.SelectedItem - ListBox中被选中的对象

                var lst =sender as System.Windows.Controls.ListBox;

                MessageBox.Show(

                  ((System.Windows.Controls.ListBoxItem)lst.SelectedItem).Content+ " 被单击了", "提示",  MessageBoxButton.OK);

     

     

     

    MediaElement控件

     

      Source - 视频路径

            AutoPlay - 是否自动播放

     

    后台:

                    // MediaElement.Play() - 播放视频

                    // MediaElement.Pause() - 暂停视频

                    // MediaElement.Stop() - 停止视频

                    // MediaElement.IsMuted - 是否静音

                    // MediaElement.Volume - 声音大小(0 - 1)

     

     

     

    StackPanel控件

         <!--

            SelectedIndex -被选中的TabItem 索引

            SelectedItem - 被选中的TabItem 对象

            -->

            <basics:TabControl Width="400" Height="400" SelectedIndex="1">

               

                <basics:TabItem Header="Tab1">

                    <TextBlock Text="Tab1 Content"/>

                </basics:TabItem>

     

                <!--

               TabItem.Header - TabItem 的标题

               TabItem.Content - TabItem 的内容

                -->

                <basics:TabItem>

                    <basics:TabItem.Header>

                       <TextBlock Text="Tab2"/>

                    </basics:TabItem.Header>

                    <basics:TabItem.Content>

                       <TextBlock Text="Tab2 Content"/>

                    </basics:TabItem.Content>

                </basics:TabItem>

     

                <basics:TabItem>

                    <basics:TabItem.Header>

                       <Image Source="/Silverlight20;component/Images/Logo.jpg" Height="20" />

                    </basics:TabItem.Header>

                    <TextBlock Text="Tab3Content"></TextBlock>

                </basics:TabItem>

     

                <basics:TabItem>

                    <basics:TabItem.Header>

                       <Grid Width="100">

                           <Image Source="/Silverlight20;component/Images/Logo.jpg" Height="20"HorizontalAlignment="Center" />

                           <TextBlock Text="Tab4" HorizontalAlignment="Center" />

                       </Grid>

                    </basics:TabItem.Header>

                    <TextBlock Text="Tab4Content"></TextBlock>

                </basics:TabItem>

               

            </basics:TabControl>

     

     

     

     

    ProgressBar

         <!--

            Minimum -ProgressBar控件的最小值。参见基类System.Windows.Controls.Primitives.RangeBase

            Maximum -ProgressBar控件的最大值。参见基类System.Windows.Controls.Primitives.RangeBase

            Value -ProgressBar控件的值。参见基类System.Windows.Controls.Primitives.RangeBase

            ValueChanged -ProgressBar控件的值发生变化时所触发的事件

            -->

            <ProgressBar x:Name="progressBar" Width="200" Height="20" Minimum="10" Maximum="70"></ProgressBar>

     

            <!--

            IsIndeterminate - 是否无法确定当前的进度值

                false - 可以确定当前的进度值

                true - 无法确定当前的进度值。一个Loading动画

            -->

            <ProgressBar Width="200" Height="20" IsIndeterminate="True" Margin="5"></ProgressBar>

     

     

     

     

    RadioButton

         <!--

            GroupName - RadioButton控件所属组的组名

            Checked - 被选中后所触发的事件

            Click - 被单击后所触发的事件

            -->

            <RadioButton GroupName="groupName" Content="红色的RadioButton" Background="Red" Margin="5" />

           

            <!--

            IsEnabled -RadioButton是否有效

            -->

            <RadioButton GroupName="groupName" Content="无效的RadioButton" IsEnabled="False" Margin="5" />

     

            <!--

            IsChecked - 是否被选中

           RadioButton.Content - RadioButton所对应的内容

            -->

            <RadioButton GroupName="groupName" Margin="5" IsChecked="true">

                <RadioButton.Content>

                    <Image Source="/Silverlight20;component/Images/Logo.jpg" Width="200" />

                </RadioButton.Content>

            </RadioButton>

     

     

     

     

    TextBox

          <!--

            Text - TextBox内显示的值

            BorderThickness- 边框的宽度(像素值:上下左右;左右,上下;左,上,右,下)

            BorderBrush - 边框的颜色

            -->

            <TextBox Text="红色框绿色底蓝色字(真难看)" BorderBrush="Red" BorderThickness="1,5"Background="Green" Foreground="Blue" Margin="6" />

                   

            <!--

            IsReadOnly - 是否只读

            -->

            <TextBox Text="只读TextBox" IsReadOnly="True" Margin="6" />

           

            <!--

            AcceptsReturn -是否允许输入回车

           HorizontalScrollBarVisibility - 水平滚动条的显示状态

           VerticalScrollBarVisibility - 垂直滚动条的显示状态

                Auto - 自动根据TextBox控件的宽和高,以及其内容的宽和高,来决定是否显示滚动条

                Disabled - 不显示,但是可以通过键盘或鼠标在显示内容中的移动或拖动操作,来看到被遮挡的内容

                Hidden - 不显示,而且无法看到被遮挡的内容

                Visible - 显示滚动条

            -->

            <TextBox Height="50" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" Margin="6"

                    Text="多行文本框1&#xD;&#xA;多行文本框2&#xD;&#xA;多行文本框3&#xD;&#xA;多行文本框4&#xD;&#xA;多行文本框5&#xD;&#xA;多行文本框6" />

           

            <!--

           SelectionChanged - 选中的文本内容发生变化时所触发的事件

            -->

            <TextBox Height="50" AcceptsReturn="False" Margin="5"SelectionChanged="TextBox_SelectionChanged"

                    Text="相应选中事件&#xD;&#xA;多行文本框1&#xD;&#xA;多行文本框2&#xD;&#xA;多行文本框3" />

           

            <TextBlock Margin="5">

                <Run>选中的文本为:</Run>

                <LineBreak />

                <Run x:Name="lblMsg"></Run>

            </TextBlock>

     

    后台获值: lblMsg.Text = ((System.Windows.Controls.TextBox)sender).SelectedText;

     

     

     

    Ellipse

           <!--椭圆-->

            <!--

            Width - 椭圆的宽

            Height - 椭圆的高

            Stroke - 边框

            StrokeThickness- 边框尺寸

            Fill - 填充

            -->

            <Ellipse Stroke="Red" Fill="Yellow" StrokeThickness="6" Width="100" Height="50"></Ellipse>

     

     

     

    Line

           <!--线-->

            <!--

            X1 - 起点的 X 坐标

            Y1 - 起点的 Y 坐标

            X2 - 终点的 X 坐标

            Y2 - 终点的 Y 坐标

            注:

                Line无填充,也就是Line的Fill属性无效

                坐标以左上角为原点,原点右侧/下侧为正方向

            -->

            <Line X1="0" Y1="100" X2="200" Y2="300" Stroke="Black" StrokeThickness="6" />

    二十六、Polyline控件

            <!--非闭合图形,一串连接起来的线,起点与终点不会自动相连-->

            <!--

            Points - 构造路径所使用的点

                空格分隔点坐标,逗号分隔X轴和Y轴坐标

            -->

            <Polyline Points="0,0 100,0 300,100 200,100100,200" Stroke="Red" StrokeThickness="6" Fill="Yellow" />(在silverlight5中没有这个控件)

     

     

     

     

    DataGrid

    <!--

            AutoGenerateColumns - 是否根据数据源自动生成列。默认值为 true

           RowDetailsVisibilityMode - 显示相应的行的详细数据时所使用的显示模式[System.Windows.Controls.DataGridRowDetailsVisibilityMode枚举]

               DataGridRowDetailsVisibilityMode.Collapsed - 总不显示   

                DataGridRowDetailsVisibilityMode.Visible- 总是显示 

               DataGridRowDetailsVisibilityMode.VisibleWhenSelected - 只显示选中行的详细数据。默认值        

            -->

            <data:DataGrid x:Name="DataGrid1" Margin="5"

                Width="400" Height="200"

                AutoGenerateColumns="False"

                >

     

                <!--

               DataGrid.Columns - 手工定义DataGrid的列

                   DataGridTextColumn - 该列的单元格内文本方式显示

                   DataGridCheckBoxColumn - 该列的单元格以复选框方式显示

                   DataGridTemplateColumn - 该列的单元格以自定义方式显示

                       DataGridTemplateColumn.CellTemplate - 显示模式下的单元格模板

                       DataGridTemplateColumn.CellEditingTemplate - 编辑模式下的单元格模板

                -->

     

                <data:DataGrid.Columns>

                    <data:DataGridTextColumn Header="姓名" Binding="{Binding Name}" />

                    <data:DataGridTextColumn Header="生日" Binding="{Binding DayOfBirth}" />

                    <data:DataGridTextColumn Header="年龄" Binding="{Binding Age}" />

                    <data:DataGridCheckBoxColumn Header="性别" Binding="{Binding Male}" />

                    <data:DataGridTemplateColumn Header="生日">

                       <data:DataGridTemplateColumn.CellTemplate>

                           <DataTemplate>

                                <Grid>

                                    <Rectangle Fill="Red" Margin="2" />

                                    <TextBlock Text="{Binding DayOfBirth}" Foreground="Yellow" />

                                </Grid>

                           </DataTemplate>

                       </data:DataGridTemplateColumn.CellTemplate>

                       <data:DataGridTemplateColumn.CellEditingTemplate>

                           <DataTemplate>

                                <basics:DatePicker SelectedDate="{Binding DayOfBirth, Mode=TwoWay}" />

                           </DataTemplate>

                       </data:DataGridTemplateColumn.CellEditingTemplate>

                    </data:DataGridTemplateColumn>

                </data:DataGrid.Columns>

     

                <!--

               DataGrid.RowDetailsTemplate - 用于显示相应的行的详细数据的模板

                -->

                <data:DataGrid.RowDetailsTemplate>

                    <DataTemplate>

                       <StackPanel Margin="5" Background="Aqua" Height="100">

                           <TextBlock Text="{Binding Name}" Margin="5"  />

                           <TextBlock Text="{Binding Age}" Margin="5"  />

                           <TextBlock Text="{Binding DayOfBirth}" Margin="5"  />

                       </StackPanel>

                    </DataTemplate>

                </data:DataGrid.RowDetailsTemplate>

            </data:DataGrid>

     

     

     

     

     

     

     

            <!--

           GridLinesVisibility - 表格分隔线的显示方式[System.Windows.Controls.DataGridGridLinesVisibility枚举]

               DataGridGridLinesVisibility.None - 都不显示

               DataGridGridLinesVisibility.Horizontal - 只显示水平分隔线

               DataGridGridLinesVisibility.Vertical - 只显示垂直分隔线。默认值

               DataGridGridLinesVisibility.All - 显示水平和垂直分隔线

            RowBackground -奇数数据行背景

           AlternatingRowBackground - 偶数数据行背景

            -->

            <data:DataGrid x:Name="DataGrid1" Margin="5"

                Width="400" Height="200"

                AutoGenerateColumns="False"

                GridLinesVisibility="All"

                RowBackground="White"

                AlternatingRowBackground="Yellow"

                ItemsSource="{Binding}"

            >

     

                <data:DataGrid.Columns>

                

                    <!--

                   IsReadOnly - 该列的单元格是否只读

                   CanUserReorder - 该列是否可以拖动

                   CanUserResize - 该列是否可以改变列宽

                   CanUserSort - 该列是否可以排序

                   SortMemberPath - 该列的排序字段

                    -->

                    <data:DataGridTextColumn Header="姓名" Binding="{Binding Name}"

                        IsReadOnly="False"

                        CanUserReorder="True"

                        CanUserResize="True"

                        CanUserSort="True"

                        SortMemberPath="Name"

                    />

                   

                    <!--

                    Width -列宽

                       Auto - 根据列头内容的宽度和单元格内容的宽度自动设置列宽

                       SizeToCells - 根据单元格内容的宽度设置列宽

                       SizeToHeader - 根据列头内容的宽度设置列宽

                       Pixel - 像素值

                    -->

                    <data:DataGridTextColumn Header="生日" Binding="{Binding DayOfBirth}" Width="100" />

                    <data:DataGridTextColumn Header="年龄" Binding="{Binding Age}" />

                    <data:DataGridCheckBoxColumn Header="性别" Binding="{Binding Male}" />

                    <data:DataGridTextColumn Header="姓名" Binding="{Binding Name}" />

                    <data:DataGridTextColumn Header="生日" Binding="{Binding DayOfBirth}" />

                    <data:DataGridTextColumn Header="年龄" Binding="{Binding Age}" />

                    <data:DataGridCheckBoxColumn Header="性别" Binding="{Binding Male}" />

                </data:DataGrid.Columns>

     

            </data:DataGrid>

     

     

     

     

    后台cs代码中:

                //AreRowDetailsFrozen - 是否冻结 RowDetailsTemplate 。 默认值为 false

                //     如果等于 true ,那么在DataGrid 的水平滚动条滚动的时候 RowDetailsTemplate 不会跟着滚动

     

                //IsReadOnly - 单元格是否只读。默认值 false

                //FrozenColumnCount - 表格所冻结的列的总数(从左边开始数)。默认值 0

                //SelectionMode - 行的选中模式[System.Windows.Controls.DataGridSelectionMode枚举]

                //     DataGridSelectionMode.Single - 只能单选

                //     DataGridSelectionMode.Extended - 可以多选(通过Ctrl或Shift的配合)。默认值

                //CanUserReorderColumns - 是否允许拖动列。默认值 true

                //CanUserResizeColumns - 是否允许改变列的宽度。默认值 true

                //CanUserSortColumns - 是否允许列的排序。默认值 true

                //VerticalGridLinesBrush - 改变表格的垂直分隔线的 Brush

                //HorizontalGridLinesBrush - 改变表格的水平分隔线的 Brush

                //HeadersVisibility - 表头(包括列头和行头)的显示方式[System.Windows.Controls.DataGridHeadersVisibility枚举]

                //     DataGridHeadersVisibility.All - 列头和行头均显示

                //     DataGridHeadersVisibility.Column - 只显示列头。默认值

                //     DataGridHeadersVisibility.Row - 只显示行头

                //     DataGridHeadersVisibility.None - 列头和行头均不显示

     

            privatevoid chkCustomGridLineVertical_Changed(object sender, RoutedEventArgse)

            {

                CheckBoxchk = sender as CheckBox;

     

                if(DataGrid1 != null)

                {

                    //VerticalGridLinesBrush - 改变表格的垂直分隔线的 Brush

                    if (chk.IsChecked == true)

                       DataGrid1.VerticalGridLinesBrush = new SolidColorBrush(Colors.Blue);

                    else

                       DataGrid1.VerticalGridLinesBrush = new SolidColorBrush(Color.FromArgb(255,223, 227, 230));

                }

            }

  • 相关阅读:
    UITableView全面解析
    UITableView传值(自己使用)(属性,代理传值)
    页面之间传值(单例传值)(自己使用)
    带导航栏的最简单多视图
    UIscrollView和UIPageControl的循环滚动
    UIPickerView简单应用
    自定义进度条(菜鸟版)
    UISegmentedControl(人物简介)
    UI控件闪灯
    关于NSCELL
  • 原文地址:https://www.cnblogs.com/chengcailian/p/3923629.html
Copyright © 2011-2022 走看看