silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了仅在Silverlight DataGrid中突出显示整行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

当用户点击datagrid中的一行(或使用键盘)时,该行被选中,但是他们点击的特定单元格也被赋予了自己的特殊焦点.这对于数据编辑网格来说很好,但是我正在尝试创建一个更像一个打开的对话框,其中显示了列表中每个项目的属性,所以… 可以配置(只读)DataGrid,以便用户只能选择或专注于整个行,而不是单个字段. 如果不可能,是否只有第一个元素可选择的优雅方法 – 例如在标准的Windows打开对话框中
@H_489_14@
@H_489_14@
用户点击datagrid中的一行(或使用键盘)时,该行被选中,但是他们点击的特定单元格也被赋予了自己的特殊焦点.这对于数据编辑网格来说很好,但是我正在尝试创建一个更像一个打开的对话框,其中@L_772_4@了列表中每个项目的属性,所以…

可以配置(只读)DataGrid,以便用户只能选择或专注于整个行,而不是单个字段.

如果不可能,是否只有第一个元素可选择的优雅方法 – 例如在标准的Windows打开对话框中,如果您更改为“详细信息”视图,则每行都有几列(文件名,创建日期,大小等) ),但您只能突出@L_772_4@文件名列中的项目.

解决方法

这是我的(跛脚)版本,在当前行的所选行和灰色背景上添加一个黑色背景.我必须覆盖样式,因为我单独绘制单元格,并且所选择的行被隐藏.

只需将粘贴的代码添加到DataGrid实例中即可:

<local:DataGrid.RowStyle>
            <Style TargetType="local:DataGridRow">
                <Setter Property="IsTabStop" Value="false" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="local: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=".5"/>
                                            </Storyboard>
                                        </vsm:VisualState>
                                        <vsm:VisualState x:Name="Normal SELEcted">
                                            <Storyboard>
                                                <DoubleAnimation Storyboard.TargetName="BACkgroundRectangleSELEcted" Storyboard.TargetProperty="Opacity" Duration="0" To="1" />
                                            </Storyboard>
                                        </vsm:VisualState>
                                        <vsm:VisualState x:Name="MouSEOver SELEcted">
                                            <Storyboard>
                                                <DoubleAnimation Storyboard.TargetName="BACkgroundRectangleSELEcted" Storyboard.TargetProperty="Opacity" Duration="0" To="1"/>
                                            </Storyboard>
                                        </vsm:VisualState>
                                        <vsm:VisualState x:Name="Unfocused SELEcted">
                                            <Storyboard>
                                                <DoubleAnimation Storyboard.TargetName="BACkgroundRectangleSELEcted" Storyboard.TargetProperty="Opacity" Duration="0" To="1"/>
                                                <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" Storyboard.TargetName="BACkgroundRectangleSELEcted" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">
                                                    <SplineColorKeyFrame KeyTime="0" Value="Black"/>
                                                </ColorAnimationUsingKeyFrames>
                                            </Storyboard>
                                        </vsm:VisualState>
                                    </vsm:VisualStateGroup>
                                </vsm:VisualStateManager.VisualStateGroups>
                                <Grid.RowDeFinitions>
                                    <RowDeFinition Height="*"/>
                                    <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>

                                <Rectangle x:Name="BACkgroundRectangle" Grid.RowSpan="2" Grid.columnSpan="2" Opacity="0" Fill="#FFBADDE9"/>
                                <Rectangle x:Name="BACkgroundRectangleSELEcted" Grid.RowSpan="2" Grid.columnSpan="2" Opacity="0" Fill="Black"/>

                                <localprimitives:DataGridRowHeader Grid.RowSpan="3" Name="RowHeader" localprimitives:DataGridFrozenGrid.IsFrozen="True" />
                                <localprimitives:DataGridCellsPresenter Margin="2" Grid.column="1" Name="CellsPresenter" 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>
        </local:DataGrid.RowStyle>
@H_489_14@

大佬总结

以上是大佬教程为你收集整理的仅在Silverlight DataGrid中突出显示整行全部内容,希望文章能够帮你解决仅在Silverlight DataGrid中突出显示整行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:datagridsilverlight仅在整行显示突出
猜你在找的silverlight相关文章
其他相关热搜词更多
phpJavaPython程序员load如何string使用参数jquery开发安装listlinuxiosandroid工具javascriptcap