none
这些“样式”应该怎样修改??? RRS feed

  • 问题

  • 这些“样式”应该怎样修改???

    问题如图所示:

    问题一:“DataGrid”列如何居中?

    问题二:“Grid”线样式如何修改???   改为实线。

    问题三:“TextBlock”放在“Grid”单元格中,如何居中显示???   水平居中,垂直居中。

    问题四:如何将“DataGrid”各行之间的分割线显示出来,就像它的边框一样???

    问题五:

            “Grid”、“Textblock”这些元素定义在“DataGrid”控件的“<sdk:DataGridTemplateColumn.CellTemplate >”中,“Expressionblend”就没办法编辑了啊???如下图:

            

    XAML如下:

          

    <Grid Margin="69,80,79,82">
                <Grid.RowDefinitions>
                    <RowDefinition Height="30"/>
                    <RowDefinition/>
                </Grid.RowDefinitions>
               
                <sdk:Label Background="#FFB7D4E0" Content="{Binding EnergyTitle}"/>
                <sdk:DataGrid Grid.Row="1" Name="dg_EnergyCustom" AutoGenerateColumns="False">
                    <sdk:DataGrid.Columns>
                        <sdk:DataGridTemplateColumn     DisplayIndex="-1"   Header="年份" IsReadOnly="True" Width="30*" >
                            <sdk:DataGridTemplateColumn.CellTemplate >
                                <DataTemplate>
                                    <TextBlock FontSize="13" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding EnergyYear}"></TextBlock>
                                </DataTemplate>
                            </sdk:DataGridTemplateColumn.CellTemplate>
                        </sdk:DataGridTemplateColumn>
                        <sdk:DataGridTemplateColumn Header="项目" Width="30*">
    <sdk:DataGridTemplateColumn.CellTemplate >
    <DataTemplate>
                                    <Grid ShowGridLines="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="30" />
                                            <RowDefinition Height="20"/>
                                            <RowDefinition Height="20"/>
                                        </Grid.RowDefinitions>
                                        <TextBlock Text="能耗量合计" Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"  ></TextBlock>
                                        <TextBlock Text="单位面积能耗" Grid.Row="1"></TextBlock>
                                        <TextBlock Text="生均能耗" Grid.Row="2"></TextBlock>
                                    </Grid>
                                    
    </DataTemplate>
    </sdk:DataGridTemplateColumn.CellTemplate>
    </sdk:DataGridTemplateColumn>
                        <sdk:DataGridTemplateColumn Header="全校" Width="40*">
                            <sdk:DataGridTemplateColumn.CellTemplate >
                                <DataTemplate>
                                    <Grid ShowGridLines="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="30" />
                                            <RowDefinition Height="20"/>
                                            <RowDefinition Height="20"/>
                                        </Grid.RowDefinitions>
                                        <TextBlock  Grid.Row="0"  Text="{Binding EnergySum}"  HorizontalAlignment="Center" VerticalAlignment="Center"  Height="30"></TextBlock>
                                        <TextBlock  Grid.Row="1" Text="{Binding EnergyUnitArea}" ></TextBlock>
                                        <TextBlock  Grid.Row="2" Text="{Binding EnergyEveryOne}"></TextBlock>
                                    </Grid>

                                </DataTemplate>
                            </sdk:DataGridTemplateColumn.CellTemplate>
                        </sdk:DataGridTemplateColumn>
                    </sdk:DataGrid.Columns>

                </sdk:DataGrid>
                
            </Grid>

    Science and technology is my lover.



    2012年7月25日 4:24

答案

  • 你好,

    1. DataGridColumnHeader居中,这个是需要编辑DataGridHeaderStyle,在其中找到Grid将其HorizontalAlignment设为Center

    2. 将Grid的线条设为实线,ShowGridLine这个属性的真实目的是在设计的时候添加一些参考线,而不是用来最终显示的, 所以这个没有很直接的属性可以把虚线改为实线。但是你可以自己加border或者rectangle在每个GridCell中,从而实现实线的效果。

    请参考以下例子

    http://forums.silverlight.net/p/15638/52116.aspx

    3.请将HorizontalAlignmnet谁为Center <TextBlock Text="能耗量合计" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Stretch" ></TextBlock>

    4. 默认的情况下只有当DataGridCell获得焦点的时候才会有边框显示,所以你可以编辑DataGridCellStyle将其中的FocusVisual的Rectangle Opacity属性设为1,这样边框就会一直都显示了。

    5. 也一样可以编辑的。右键点击DataGridTemplateColumn -选择 EditColumnTemplate - 然后再选择相应的Template进行编辑。

    • 已编辑 Shi Ding 2012年7月27日 4:29
    • 已标记为答案 Shi Ding 2012年8月6日 15:21
    2012年7月27日 3:52