• Silverlight 数据显示和布局控件 示例


    数据显示控件

    DataGrid

    DataGrid 是最基础的数据显示方式,也就是二维表格。

    image

     <data:DataGrid Name="dataGrid1" Height="120" 
                           Margin="5,5,5,5"
                           RowDetailsVisibilityMode="VisibleWhenSelected" 
                           AutoGenerateColumns="False">
                    <data:DataGrid.Columns>
                        <data:DataGridTextColumn Header="订?单¥号?" 
                                             Width="SizeToHeader" 
                                             Binding="{Binding OrderID}"
                                             IsReadOnly="True"/>
                        <data:DataGridTextColumn Header=" 客í户§名?称? "
                                             Width="SizeToHeader"
                                             Binding="{Binding CustomerName}"/>
                        <data:DataGridTextColumn Header=" 订?单¥签?订?日?期ú " 
                                             Width="SizeToHeader"
                                             Binding="{Binding OrderDate}"/>
                        <data:DataGridCheckBoxColumn Header="是?否?变?更ü"
                                                 Width="SizeToHeader"
                                                 Binding="{Binding IsChanged}"/>
                    </data:DataGrid.Columns>
                </data:DataGrid>
     
        
        Width="SizeToHeader"  宽度与Header相同
     
        
        this.dataGrid1.ItemsSource = Order.Orders.GetSampleOrderList();

      /// <summary>
        /// 订?单¥集ˉ合?类à
        /// </summary>
        public class Orders
        {
            public static List<Order> GetSampleOrderList()
            {
                return new List<Order>{new Order("001", "A公?司?"
                    , DateTime.Now, true),
                    new Order("002", "B公?司?"
                        , DateTime.Now, false)};
            }
        }

     

    DataPager

    image

    DataPager是翻页控件,用来与ListBox,DataGrid组合并实现翻页的控件。

    xmlns:dataControls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
    

    <ListBox x:Name="listBox"/>
        <dataControls:DataPager x:Name="dataPager"
            Source="{Binding ItemsSource,ElementName=listBox}" 
            Background="LightBlue">
        </dataControls:DataPager>
    

    public SC_Pager()
           {
               InitializeComponent();
               //设置分页控件基本属性
               dataPager.DisplayMode = PagerDisplayMode.FirstLastPreviousNextNumeric;
               //分页事件
               dataPager.PageIndexChanged +=
                   new EventHandler<EventArgs>(dataPager_PageIndexChanged);
               //设置页尺寸
               dataPager.PageSize = 5;
               //定义数据源
               string[] source = @"一,二,三,四,五,六,七,八,九,十
       ,十一,十二,十三,十四,十五".Split(',');
               //创建分页集合对象
                PagedCollectionView pager = new PagedCollectionView(source);
               //将分页集合做为数据源绑定到ListBox控件
                listBox.ItemsSource = pager;
           }
           //显示当前页号
           void dataPager_PageIndexChanged(object sender, EventArgs e)
           {
               DataPager dataPager = sender as DataPager;
               MessageBox.Show("当前是第" + dataPager.PageIndex.ToString() + "页");
           }

    TreeView

    image

    TreeView 树控件,他的节点可以是文字也可以是其他XAML 元素,TreeViewItem元素代表节点,可以一层嵌套一层

     xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
    

    <controls:TreeView Width="300" Margin="10"
                       x:Name="treeView">
            <controls:TreeViewItem Header="商ì品·树÷"
                               IsSelected="True"
                               IsExpanded="True">
                <controls:TreeViewItem Header="茶è" 
                                   IsExpanded="True">
                    <controls:TreeViewItem Header="铁ú观?音?"/>
                    <controls:TreeViewItem Header="茉?莉ò花¨" />
                </controls:TreeViewItem>
                <controls:TreeViewItem Header="电?脑?"
                                   IsExpanded="True">
                    <controls:TreeViewItem Header="台¨式?机ú"
                                       IsExpanded="True">
                        <controls:TreeViewItem Header="Dell"/>
                        <controls:TreeViewItem Header="联a想?"/>
                    </controls:TreeViewItem>
                    <controls:TreeViewItem Header="笔ê记?本?"
                                       IsExpanded="True">
                        <controls:TreeViewItem>
                            <controls:TreeViewItem.Header>
                                <CheckBox Content="Ibm" 
                                      Click="CheckBox_Click" 
                                      Width="100"/>
                            </controls:TreeViewItem.Header>
                        </controls:TreeViewItem>
                        <controls:TreeViewItem>
                            <controls:TreeViewItem.Header>
                                <CheckBox Content="Dell"
                                      Click="CheckBox_Click"
                                      Width="100"/>
                            </controls:TreeViewItem.Header>
                        </controls:TreeViewItem>
                    </controls:TreeViewItem>
                </controls:TreeViewItem>
            </controls:TreeViewItem>
        </controls:TreeView>
    

    Header="笔记本"  属性代表树节点的显示内容

    布局控件

    布局控件是纯粹为展现UI而设计的控件。

    Border

    Canvas

    面板控件

    Grid

    格子控件

    StackPanel

    排列控件

    GridSplitter

    Grid的组合控件,用来实现格子大小的鼠标拖动修改。

    下面定义了,三行三列的格子,其中夹在中间的2个像素的分析放置了GridSplitter控件,用来使用鼠标拖动,来调整格子的大小。

    <Grid Name="LayoutRoot" Background="#46461F">
        <Grid.RowDefinitions>
            <RowDefinition Height="100"/>
            <RowDefinition Height="2"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="100"/>
            <ColumnDefinition Width="2"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
    
        <Rectangle Grid.Row="0" Grid.Column="0" Fill="Red"/>
        <Rectangle Grid.Row="0" Grid.Column="2" Fill="Blue"/>
        <Rectangle Grid.Row="2" Grid.Column="0" Fill="Green"/>
        <Rectangle Grid.Row="2" Grid.Column="2" Fill="Yellow"/>
    
        <!--水?平?控?件t
            ShowsPreview:o为aTrue时±显?示?预¤览à效§果?
            HorizontalAlignment:o为a"Stretch"时±,?可é调÷整?行D的?大ó小?
            VerticalAlignment:o为a"Stretch"时±,?可é调÷整?列D的?大ó小?
        -->
        <basics:GridSplitter Grid.Row="1" Grid.Column="0"
                             Grid.ColumnSpan="3" 
                             ShowsPreview="True" 
                             HorizontalAlignment="Stretch" 
                             VerticalAlignment="Stretch">
        </basics:GridSplitter>
        <!--垂1直±控?件t
            ShowsPreview:oFalse时±不?显?示?预¤览à
            -->
        <basics:GridSplitter Grid.Row="0" Grid.Column="1" 
                             Grid.RowSpan="3" 
                             ShowsPreview="False" 
                             HorizontalAlignment="Stretch"
                             VerticalAlignment="Stretch">
        </basics:GridSplitter>
    </Grid>
    

    ScrollViewer

    ScrollViewer是滚动条窗口控件,当包含在他其中的控件大小超出了ScrollViewer的大小的时候,滚动条就会变的可拖动。

    <ScrollViewer VerticalScrollBarVisibility="Visible" 
                      HorizontalScrollBarVisibility="Auto" Name="scv_Text">
                </ScrollViewer>
    

    TabControl

    image

    TabControl 是选项卡控件。

    <basics:TabControl x:Name="tab1" Width="300" Height="200">
            <basics:TabItem Header="选?项?卡¨1" Content="这a是?第ú一?个?选?项?卡¨"/>
                <basics:TabItem Header="选?项?卡¨2" >
                    <Button Content="Button" Height="23" Name="button1" Width="75" />
                </basics:TabItem>
        </basics:TabControl>
    

    示例出自Silverlight开发详解一书的源代码

    冯瑞涛
  • 相关阅读:
    springboot 入门
    json-lib 的 maven dependency 引入及Jar包下载
    DataGridView 使用技巧精华
    SqlServer无备份下误删数据恢复
    Reflector 已经out了,试试ILSpy
    C# 反射,动态编译
    windows8和windows server2012不联网安装.net 3.5(包括2.0和3.0)
    如何附加被分离的质疑数据库? [转]
    easyui validatebox 验证类型
    所见即所得:七大无需编程的DIY开发工具
  • 原文地址:https://www.cnblogs.com/finehappy/p/1668286.html
Copyright © 2020-2023  润新知