Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight DataGrid列标题赢得';应用样式时,请不要与数据对齐_Silverlight_Xaml_Datagrid - Fatal编程技术网

Silverlight DataGrid列标题赢得';应用样式时,请不要与数据对齐

Silverlight DataGrid列标题赢得';应用样式时,请不要与数据对齐,silverlight,xaml,datagrid,Silverlight,Xaml,Datagrid,我有一个Silverlight datagrid,它应用了一个RowStyle来高亮显示某些行。屏幕上的列数超过了可容纳的列数,因此有一个水平滚动条。但是,当向右滚动时,数据列很快与标题不同步 我尝试了建议的解决方案,将样式定义直接移动到XAML中的datagrid代码中,但这对我来说不起作用。我知道是这种风格造成了问题,但我无法确定是什么原因造成的!我在下面提供了样式和datagrid定义。如有任何建议,将不胜感激 <sdk:DataGrid MinHeight="100" Margin

我有一个Silverlight datagrid,它应用了一个RowStyle来高亮显示某些行。屏幕上的列数超过了可容纳的列数,因此有一个水平滚动条。但是,当向右滚动时,数据列很快与标题不同步

我尝试了建议的解决方案,将样式定义直接移动到XAML中的datagrid代码中,但这对我来说不起作用。我知道是这种风格造成了问题,但我无法确定是什么原因造成的!我在下面提供了样式和datagrid定义。如有任何建议,将不胜感激

<sdk:DataGrid MinHeight="100" Margin="0,0,0,30" AutoGenerateColumns="False" Name="dgResults" ItemsSource="{Binding Path=FindResults}" SelectedItem="{Binding Path=CurrentItem, Mode=TwoWay}"
                                    RowStyle="{StaticResource RowColorableDataGrid}" toolkit:DockPanel.Dock="Bottom">
                        <i:Interaction.Behaviors>
                            <behavior:SelectRowOnRightClickBehavior />
                            <mybehavior:DepartureContextMenuBehavior/>
                        </i:Interaction.Behaviors>
                        <sdk:DataGrid.Columns>
                            <sdk:DataGridTemplateColumn CanUserReorder="False" CanUserResize="True" CanUserSort="False" Header="Select">
                                <sdk:DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <CheckBox ClickMode="Press" IsChecked="{Binding Path=IsSelected, Mode=TwoWay}" Width="Auto" IsEnabled="True"/>
                                    </DataTemplate>
                                </sdk:DataGridTemplateColumn.CellTemplate>
                            </sdk:DataGridTemplateColumn>
                            <sdk:DataGridTextColumn Header="Code" Binding="{Binding Path=Tourcode}" IsReadOnly="True" Width="Auto" />
                            <sdk:DataGridTextColumn Header="Tour" Binding="{Binding Path=TourDescription}" IsReadOnly="True" Width="200" />
                            <sdk:DataGridTextColumn Header="Brand" Binding="{Binding Path=Brand}" IsReadOnly="True" Width="Auto" />
                            <sdk:DataGridTextColumn Header="Land Start Date" Binding="{Binding Path=LandStartDate}" IsReadOnly="True" Width="Auto" />
                            <sdk:DataGridTextColumn Header="Land End Date" Binding="{Binding Path=LandEndDate}" IsReadOnly="True" Width="Auto" />
                            <sdk:DataGridTextColumn Header="Status" Binding="{Binding Path=Status}" IsReadOnly="True" Width="Auto" />
                            <sdk:DataGridTextColumn Header="TIP Avail" Binding="{Binding Path=Availability}" IsReadOnly="True" Width="Auto" />
                            <sdk:DataGridTextColumn Header="GSpace" Binding="{Binding Path=GSpace}" IsReadOnly="True" Width="Auto" />
                            <sdk:DataGridTextColumn Header="Per PAX (TWN)" Binding="{Binding Path=PricePerPaxTwin}" Width="Auto" />
                            <sdk:DataGridTextColumn Header="Per PAX (SGL)" Binding="{Binding Path=PricePerPaxSingle, StringFormat='+0;-0;0'}" Width="Auto" />
                            <sdk:DataGridTextColumn Header="Per PAX (TPL)" Binding="{Binding Path=PricePerPaxTriple, StringFormat='+0;-0;0'}" Width="Auto" />
                        </sdk:DataGrid.Columns>
                    </sdk:DataGrid>

以下是行样式XAML:

<Style TargetType="data:DataGridRow" x:Key="RowColorableDataGrid">
        <Setter Property="IsTabStop" Value="False"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="data:DataGridRow">
                    <localprimitives:DataGridFrozenGrid x:Name="Root">
                        <localprimitives:DataGridFrozenGrid.Resources>
                            <Storyboard x:Key="DetailsVisibleTransition">
                                <DoubleAnimation Duration="00:00:0.1" Storyboard.TargetName="DetailsPresenter" Storyboard.TargetProperty="ContentHeight"/>
                            </Storyboard>
                        </localprimitives:DataGridFrozenGrid.Resources>
                        <localprimitives:DataGridFrozenGrid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                        </localprimitives:DataGridFrozenGrid.RowDefinitions>
                        <localprimitives:DataGridFrozenGrid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition/>
                        </localprimitives:DataGridFrozenGrid.ColumnDefinitions>
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal"/>
                                <VisualState x:Name="NormalAlternatingRow">
                                    <Storyboard>
                                        <DoubleAnimation Duration="0" Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="Opacity" To="1"/>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="MouseOver">
                                    <Storyboard>
                                        <DoubleAnimation Duration="0" Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="Opacity" To=".5"/>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="NormalSelected">
                                    <Storyboard>
                                        <DoubleAnimation Duration="0" Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="Opacity" To="1"/>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="MouseOverSelected">
                                    <Storyboard>
                                        <DoubleAnimation Duration="0" Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="Opacity" To="1"/>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="UnfocusedSelected">
                                    <Storyboard>
                                        <DoubleAnimation Duration="0" Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="Opacity" To="1"/>
                                        <ColorAnimation Duration="0" Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="(Fill).Color" To="#FFE1E7EC"/>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                            <VisualStateGroup x:Name="ValidationStates">
                                <VisualState x:Name="Valid"/>

                                <VisualState x:Name="Invalid">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="Visibility">
                                            <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
                                        </ObjectAnimationUsingKeyFrames>
                                        <DoubleAnimation Duration="0" Storyboard.TargetName="InvalidVisualElement" Storyboard.TargetProperty="Opacity" To="1"/>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Rectangle x:Name="BackgroundRectangle" Fill="{Binding RowBackgroundColor, Mode=OneWay}" Grid.ColumnSpan="2" Grid.RowSpan="2"/>
                        <Rectangle x:Name="InvalidVisualElement" Fill="#FFF7D8DB" Opacity="0" Grid.ColumnSpan="2" Grid.RowSpan="2"/>
                        <localprimitives:DataGridRowHeader x:Name="RowHeader" localprimitives:DataGridFrozenGrid.IsFrozen="True" Grid.RowSpan="3"/>
                        <ContentControl x:Name="contentControl" Foreground="{Binding RowForegroundColor, Mode=OneWay}">
                            <localprimitives:DataGridCellsPresenter x:Name="CellsPresenter" localprimitives:DataGridFrozenGrid.IsFrozen="True" Grid.Column="1"/>
                        </ContentControl>
                        <localprimitives:DataGridDetailsPresenter x:Name="DetailsPresenter" Grid.Column="1" Grid.Row="1"/>
                        <Rectangle x:Name="BottomGridLine" Height="1" HorizontalAlignment="Stretch" Grid.Column="1" Grid.Row="2"/>
                    </localprimitives:DataGridFrozenGrid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>


您是否有可能需要快速截屏,以了解您的体验,从而帮助可视化问题,而无需加载一堆模拟内容来运行代码片段?:)谢谢您的回复@ChrisW。!我添加了一个截图;不幸的是,该网站不允许我发布它,因为我刚刚创建了我的帐户。所以我刚刚把它上传到我的网站上,你可以在这里看到:在这个例子中,日期应该在“土地开始日期”下,“OPN”应该在“状态”下,等等。看起来最后一列爆炸了,它将所有数据列推到左侧,使它们与标题不同步。