开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 8588|回复: 1

WPF Data Grid不激活时如何保留选定行的样式

[复制链接]

0

精华

8

贡献

1768

赞扬

特约版主

帖子
583
软币
4524
在线时间
275 小时
注册时间
2019-2-21
发表于 2021-1-21 09:34:09 | 显示全部楼层 |阅读模式
DevExpress WPF Subscription(曾命名DevExpress WPF Controls)拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。
问题
已经在GridControl中更改了选定的行背景、前景和fontweight,效果很好。 但是当GridControl失去焦点时,选定的行样式也会更改,如何防止或者覆盖?
XAML
[XML] 纯文本查看 复制代码
<dxg:GridControl.View>
<dxg:TableView x:Name="productionElementsView" UseLightweightTemplates="None" MultiSelectMode="Row" NavigationStyle="Row" ShowGroupPanel="True" FilterEditorCreated="TableView_FilterEditorCreated" PreviewMouseLeftButtonDown="productionElementsView_PreviewMouseLeftButtonDown" >
<dxg:TableView.RowStyle>
<Style TargetType="{x:Type dxg:GridRowContent}" BasedOn="{StaticResource {dxgt:GridRowThemeKey ResourceKey=RowStyle, IsThemeIndependent=True}}">
<Setter Property="Background" Value="{Binding Path=Row, Converter={StaticResource ResourceKey=ItemTypeBackgroundColor}}" />
<Setter Property="Foreground" Value="{Binding Path=Row, Converter={StaticResource ResourceKey=ItemTypeForegroundColor}}" />
<Setter Property="FontWeight" Value="Regular" />
<Style.Triggers>
<Trigger Property="dxg:DataViewBase.IsFocusedRow" Value="True">
<Setter Property="Background" Value="#FFFFDC00" />
<Setter Property="Foreground" Value="Black" />
<Setter Property="FontWeight" Value="SemiBold" />

</Trigger>
<DataTrigger Binding="{Binding IsSelected}" Value="True">
<Setter Property="Background" Value="#FFFFDC00" />
<Setter Property="Foreground" Value="Black" />
<Setter Property="FontWeight" Value="SemiBold" />
</DataTrigger>
</Style.Triggers>
</Style>
</dxg:TableView.RowStyle>
</dxg:TableView>
</dxg:GridControl.View>

解决方案
您可以将TableView的FadeSelectionOnLostFocus设置为false,以对焦点/选定行使用相同的颜色。
要为这种情况定义颜色,可以使用TableView的RowStyle属性并为RowControl的FadeSelection属性创建触发器:
XAML
[XML] 纯文本查看 复制代码
<dxg:TableView.RowStyle>
<Style TargetType="dxg:RowControl">
<Style.Triggers>
<Trigger Property="FadeSelection" Value="True">
<Setter Property="Background" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</dxg:TableView.RowStyle>


DevExpress技术交流群3:700924826      欢迎一起进群讨论



评分

参与人数 1赞扬 +1 收起 理由
zhl3422 + 1 感谢分享

查看全部评分

回复

使用道具 举报

0

精华

10

贡献

626

赞扬

帖子
207
软币
840
在线时间
37 小时
注册时间
2022-6-25
发表于 2024-1-5 13:14:56 | 显示全部楼层
学习了,谢谢分享
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-12-22 16:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表