【问题标题】:Horizontal scroll bar problem in silverlight data gridSilverlight 数据网格中的水平滚动条问题
【发布时间】:2011-10-21 18:15:05
【问题描述】:

我正在使用 silverlight 4 数据网格。我有 datagridtextcolumn 和 datagrid 模板列,对他们来说,我用 '*'、'sizetoheader' 指定列。

如果我的数据网格中有大约 20 条记录,一切正常,但是如果我的网格有超过 30 条记录,它的行为就很奇怪。就像列标题和它们的列没有正确对齐,由于这种不正确的对齐,水平出现不必要的,如果我单击任何列标题,那么一切都会好起来的。列标题的对齐方式与列完全一致。

【问题讨论】:

    标签: silverlight


    【解决方案1】:

    这也发生在我身上。

    就我而言,当我为行设置模板时,如下所示:

     <Style TargetType="sdk:DataGridRow">
            <Setter Property="IsTabStop" Value="True" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="sdk:DataGridRow">
                        <localprimitives:DataGridFrozenGrid Name="Root">
                            <vsm:VisualStateManager.VisualStateGroups>
                                <vsm:VisualStateGroup x:Name="CommonStates">
                                    <vsm:VisualStateGroup.Transitions>
                                        <vsm:VisualTransition GeneratedDuration="0" />
                                    </vsm:VisualStateGroup.Transitions>
                                    <vsm:VisualState x:Name="Normal"    />
                                    <vsm:VisualState x:Name="Normal AlternatingRow">
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="Opacity" Duration="0" To="0"/>
                                        </Storyboard>
                                    </vsm:VisualState>
                                    <vsm:VisualState x:Name="MouseOver">
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="Opacity" Duration="0" To=".65"/>
                                            <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#666666"/>
                                            </ColorAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </vsm:VisualState>
                                    <vsm:VisualState x:Name="Normal Selected">
    
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="Opacity" Duration="0" To="5"/>
                                            <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" 
                                                                          Storyboard.TargetName="BackgroundRectangle" 
                                                                          Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#ddddff"/>
                                            </ColorAnimationUsingKeyFrames>
    
    
    
                                            <ObjectAnimationUsingKeyFrames BeginTime="00:00:00"
                                                                           Duration="00:00:00.0010000"
                                                                           Storyboard.TargetName="contentControl"
                                                                           Storyboard.TargetProperty="(Control.FontWeight)">
                                                <DiscreteObjectKeyFrame KeyTime="00:00:00">
                                                    <DiscreteObjectKeyFrame.Value>
                                                        <FontWeight>Bold</FontWeight>
                                                    </DiscreteObjectKeyFrame.Value>
                                                </DiscreteObjectKeyFrame>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </vsm:VisualState>
                                    <vsm:VisualState x:Name="MouseOver Selected" >
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="Opacity" Duration="50" To="1"/>
                                            <ColorAnimationUsingKeyFrames BeginTime="0" Duration="50" Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#ccccff"/>
                                            </ColorAnimationUsingKeyFrames>
    
                                            <ObjectAnimationUsingKeyFrames BeginTime="00:00:00"
                                                                           Duration="00:00:00.0010000"
                                                                           Storyboard.TargetName="contentControl"
                                                                           Storyboard.TargetProperty="(Control.FontWeight)">
                                                <DiscreteObjectKeyFrame KeyTime="00:00:00">
                                                    <DiscreteObjectKeyFrame.Value>
    
                                                        <FontWeight>Bold</FontWeight>
                                                    </DiscreteObjectKeyFrame.Value>
                                                </DiscreteObjectKeyFrame>
                                            </ObjectAnimationUsingKeyFrames>
    
    
    
                                        </Storyboard>
                                    </vsm:VisualState>
                                    <vsm:VisualState x:Name="Unfocused Selected">
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="Opacity" Duration="0" To="1"/>
                                            <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="LightGray"/>
                                            </ColorAnimationUsingKeyFrames>
    
    
                                            <ObjectAnimationUsingKeyFrames BeginTime="00:00:00"
                                                                           Duration="00:00:00.0010000"
                                                                           Storyboard.TargetName="contentControl"
                                                                           Storyboard.TargetProperty="(Control.FontWeight)">
                                                <DiscreteObjectKeyFrame KeyTime="00:00:00">
                                                    <DiscreteObjectKeyFrame.Value>
    
                                                        <FontWeight>Bold</FontWeight>
                                                    </DiscreteObjectKeyFrame.Value>
                                                </DiscreteObjectKeyFrame>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </vsm:VisualState>
                                </vsm:VisualStateGroup>
                            </vsm:VisualStateManager.VisualStateGroups>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="*">
    
                                </RowDefinition>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition Height="Auto"/>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="*" />
                            </Grid.ColumnDefinitions>
    
                            <!--<Grid.Resources>
                                <Storyboard x:Key="DetailsVisibleTransition">
                                    <DoubleAnimation Storyboard.TargetName="DetailsPresenter" Storyboard.TargetProperty="ContentHeight" Duration="00:00:0.1" />
                                </Storyboard>
                            </Grid.Resources>-->
    
                            <Border x:Name="Borda"  BorderBrush="Black" BorderThickness="0,1,0,0"  ></Border>
                            <Rectangle x:Name="BackgroundRectangle" Grid.RowSpan="2" Grid.ColumnSpan="2" Opacity="0" Fill="#1ca0f2" >
    
                            </Rectangle>
                            <ContentControl x:Name="contentControl" FontSize="12" >
    
    
                                <localprimitives:DataGridCellsPresenter Grid.Column="1" Name="CellsPresenter" localprimitives:DataGridFrozenGrid.IsFrozen="True" >
    
                                </localprimitives:DataGridCellsPresenter>
                            </ContentControl>
                            <localprimitives:DataGridRowHeader Grid.RowSpan="3" Name="RowHeader" localprimitives:DataGridFrozenGrid.IsFrozen="True" />
    
                            <localprimitives:DataGridDetailsPresenter Grid.Row="1" Grid.Column="1" Name="DetailsPresenter" />
                            <Rectangle Grid.Row="2" Grid.Column="1" Name="BottomGridLine" HorizontalAlignment="Stretch" Height="1" />
                        </localprimitives:DataGridFrozenGrid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    

    我得到一个奇怪的行为,即每次我有可用的水平滚动条并且我使用它时,标题会与行的单元格不对齐。

    有一段时间,如果我从我的应用程序中自定义网格(上面的代码块),它对我有用,但是,我失去了一些我不想要的视觉样式。如果你有它,并且不需要它,你也可以尝试删除它

    问候!

    克莱顿弗雷塔斯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-06
      相关资源
      最近更新 更多