想要飞 发表于 2013-1-1 21:56:31

自定义“伪GridView”---菜鸟三无残品系列

<div id="cnblogs_post_body">   
       做.NET整整一年半了,天天混日子,技术也不行,浑浑噩噩的,过的平淡啊,偶尔出去自助游,总寻思着是不是要干点什么,原因无他,以前的日子太单调,想换个口味。
       这不最近做了一个WPF项目,项目做完了,闲下来了,就不知道做什么了,上班吗,总得为自己找点事做,天天上网,浏览网页,聊天(把妹除外),听音乐,
       天天反反复复的搞这些个有的没的事,说真的,没劲,还不如搞一些有实际的事,这样的事搞多了,你想要的东西或许会来的哦。
       我一直认为我写这个总结是迫于无赖啊,却又不得不写,Why? 因为没有多余的钱出去旅游,太多我想去的地方不能去,想待的地方不能待,记得上次自己一个人
       跑到杭州西湖那边去,什么都没有就一个包包,看着别人手里拿着各种设备,彻底的疼了,回来一想还是安心的待在苏州吧,安心工作,提升自己的实力吧。
       但是怎么样提升自己的实力了,我ASP.NET不懂,WCF也不会,WPF连门也没有入,一句话什么都不懂,唯一会那么一丁点的就是总结。
       前天因为要改点东西,打开了我最近做的一个WPF项目,说实话,我下面要写的东西没有一点技术含量,没有任何亮点,没有任何美感。
       下面我们来说说需求吧:
             我这个项目属于工厂监控的项目,例如客户那边有一条生产线,有10台机器,#1,#2.....#10,代表10台机器的编号,这10台机器类型相同,所产生的数据
      类型是一致的,数据显示以网格形式显示。
      如下图:                                                                                                                                                                                                            http://pic002.cnblogs.com/images/2012/162598/2012081410592570.png

         其实实际的需求比上面要求多一点,要求数据是实时更新,并且特定的数据显示特定的颜色,值类型的数据显示的背景色会根据定义的
    颜色取值范围而显示颜色。

   下面是我依据项目敲的一个范例:
第一步 先看一下这个列子的项目截图:                   
                                        http://pic002.cnblogs.com/images/2012/162598/2012081411085191.png
    第二步思路介绍
   实现的思路:在主界面先制定好整个GridView的排列形式,然后通过后台添加控件的方式来逐一添加数据(10台机械所产生的参数类型一致)。
   主界面设计如下图:         
http://pic002.cnblogs.com/images/2012/162598/2012081411174432.png
       接下来就是WPF前台代码的布局了...
       代码如下:
      
<div class="cnblogs_code" style="text-align: left;" >http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifView Code <div id="cnblogs_code_open_3dd2092a-79e8-4455-aeb7-964a40da866e" class="cnblogs_code_hide"><Window x:Class="WPFDemoOne.MainWindow"      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"      Title="MainWindow" Width="1048" Height="576">    <Border Background="#B3B3B3">      <Grid Grid.Column="0" Background="#50585D" TextBlock.Foreground="#FFFFFF" x:Name="XXOOGrid" TextBlock.FontSize="18" >            <Grid.ColumnDefinitions>                <ColumnDefinition Width="70"/>                <ColumnDefinition Width="85"/>                <ColumnDefinition Width="115"/>                <ColumnDefinition/>                <ColumnDefinition/>                <ColumnDefinition/>                <ColumnDefinition/>                <ColumnDefinition/>                <ColumnDefinition/>                <ColumnDefinition/>                <ColumnDefinition/>                <ColumnDefinition/>                <ColumnDefinition/>            </Grid.ColumnDefinitions>            <Grid.RowDefinitions>                <RowDefinition />                <RowDefinition />                <RowDefinition />                <RowDefinition />                <RowDefinition />                <RowDefinition />                <RowDefinition />                <RowDefinition />                <RowDefinition />                <RowDefinition />                <RowDefinition />                <RowDefinition />            </Grid.RowDefinitions>            <Border BorderBrush="#252525" BorderThickness="1 1 0 0" Grid.ColumnSpan="3">                <TextBlockHorizontalAlignment="Center"                           VerticalAlignment="Center"                            Text="xxxxoooo"/>            </Border>            <Border BorderBrush="#252525" BorderThickness="1 1 0 0" Grid.ColumnSpan="3" Grid.Row="1" >                <TextBlockHorizontalAlignment="Center"                            VerticalAlignment="Center"                            Text="xxoo"/>            </Border>            <Border BorderBrush="#252525" BorderThickness="1 1 0 0"Grid.ColumnSpan="3"Grid.Row="2" >                <TextBlock HorizontalAlignment="Center"                           VerticalAlignment="Center"                           Text="xxoo"/>            </Border>            <Border BorderBrush="#252525" BorderThickness="1 1 0 0" Grid.ColumnSpan="3" Grid.Row="3" >                <TextBlock HorizontalAlignment="Center"                           VerticalAlignment="Center"                           Text="xxoo"/>            </Border>            <Border BorderBrush="#252525" BorderThickness="1 1 0 0" Grid.Row="4" Grid.ColumnSpan="3">                <TextBlock HorizontalAlignment="Center"                           VerticalAlignment="Center"                           Text="xxoo"/>            </Border>            <Border BorderBrush="#252525" BorderThickness="1 1 0 1" Grid.Row="5"   Grid.ColumnSpan="3">                <TextBlock HorizontalAlignment="Center"                           VerticalAlignment="Center"                           Text="xxoo"/>            </Border>            <Border Grid.Column="0" Grid.RowSpan="6" BorderBrush="#252525"BorderThickness="1 1 0 0"Grid.Row="6">                <TextBlockText="xxoo"                            Width="72"                            FontSize="12"                            TextAlignment="Center"                            VerticalAlignment="Center"                            HorizontalAlignment="Center"                            TextWrapping="Wrap"/>            </Border>            <Border BorderBrush="#252525" Grid.Column="1" Grid.Row="6" BorderThickness="1 1 0 0" Grid.RowSpan="2">                <TextBlockText="xxoo"                           Width="60"                            FontSize="12"                            TextAlignment="Center"                            VerticalAlignment="Center"                            HorizontalAlignment="Center"                            TextWrapping="Wrap"/>            </Border>            <Border BorderBrush="#252525" Grid.Column="2"Grid.Row="6" BorderThickness="1 1 0 0">                <TextBlock Text="xxoo"                           HorizontalAlignment="Center"                           VerticalAlignment="Center"/>            </Border>            <Border BorderBrush="#252525" Grid.Column="2" Grid.Row="7" BorderThickness="1 1 0 0">                <TextBlock Text="xxoo"                           HorizontalAlignment="Center"                           VerticalAlignment="Center"/>            </Border>            <BorderBorderBrush="#252525"Grid.Column="1" Grid.Row="8" BorderThickness="1 1 0 0" Grid.RowSpan="4">                <TextBlockText="xxoo"                           Width="80"                            FontSize="12"                            TextAlignment="Center"                            VerticalAlignment="Center"                            HorizontalAlignment="Center"                            TextWrapping="Wrap"/>            </Border>            <Border BorderBrush="#252525"Grid.Column="2"Grid.Row="8" BorderThickness="1 1 0 0">                <TextBlock Text="xxoo"                           HorizontalAlignment="Center"                           VerticalAlignment="Center"/>            </Border>            <Border BorderBrush="#252525" Grid.Column="2"Grid.Row="9" BorderThickness="1 1 0 0">                <TextBlock Text="xxoo"                           HorizontalAlignment="Center"                           VerticalAlignment="Center"/>            </Border>            <Border BorderBrush="#252525"Grid.Column="2"Grid.Row="10" BorderThickness="1 1 0 0">                <TextBlock Text="xxoo"                           HorizontalAlignment="Center"                           VerticalAlignment="Center"/>            </Border>            <Border BorderBrush="#252525" Grid.Column="2" Grid.Row="11"BorderThickness="1 1 0 0">                <TextBlock Text="xxoo"                           HorizontalAlignment="Center"                           VerticalAlignment="Center"/>            </Border>      </Grid>    </Border></Window>
页: [1]
查看完整版本: 自定义“伪GridView”---菜鸟三无残品系列