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));

                }

            }

  • 相关阅读:
    POJ2778 DNA Sequence AC自动机上dp
    codeforces732F Tourist Reform 边双联通分量
    codeforces786B Legacy 线段树优化建图
    洛谷P3588 PUS 线段树优化建图
    codeforces1301D Time to Run 模拟
    codeforces1303B National Project 二分或直接计算
    codeforces1303C Perfect Keyboard 模拟或判断欧拉路
    codeforces1303D Fill The Bag 二进制应用+贪心
    python之路——使用python操作mysql数据库
    python之路——mysql索引原理
  • 原文地址:https://www.cnblogs.com/chengcailian/p/3923629.html
Copyright © 2011-2022 走看看