实现方式,通过自定义 RowControl 的样式实现。

参考:https://supportcenter.devexpress.com/ticket/list?searchString=RowCellMenuCustomizations%20show%20on%20left%20click&sorting=Relevance

<Window
x:Class="Q433098.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
Width="525"
Height="350"
Title="MainWindow"> <Window.Resources>
<SolidColorBrush x:Key="UnfocusedRowBrush" Color="#FFDDDDDD" />
<ControlTemplate x:Key="{dxgt:GridRowThemeKey ResourceKey=RowTemplate, ThemeName=Office2016White}" TargetType="dxg:RowControl">
<Grid>
<Border x:Name="Background" Background="{TemplateBinding Background}" />
<Border
x:Name="BottomLine"
VerticalAlignment="Bottom"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="0,0,0,1" />
<Grid x:Name="PART_LayoutPanel" />
<Border
x:Name="FocusedBorder"
Background="Transparent"
BorderBrush="Orange"
BorderThickness="2"
Visibility="{DXBinding '@p.SelectionState eq $dxg:SelectionState.Focused ? `Visible` : `Collapsed`'}" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="ShowHorizontalLine" Value="False">
<Setter TargetName="BottomLine" Property="Visibility" Value="Collapsed" />
</Trigger>
<Trigger Property="ShowBottomLine" Value="True">
<Setter TargetName="BottomLine" Property="Visibility" Value="Visible" />
</Trigger>
<Trigger Property="FadeSelection" Value="True">
<Setter Property="Background" Value="{StaticResource UnfocusedRowBrush}" />
</Trigger>
<Trigger Property="ShowRowBreak" Value="True">
<Setter TargetName="BottomLine" Property="BorderThickness" Value="{StaticResource {dxgt:GridRowThemeKey ResourceKey=RowBreakThickness}}" />
<Setter TargetName="BottomLine" Property="BorderBrush" Value="{StaticResource {dxgt:GridRowThemeKey ResourceKey=RowBreakBrush}}" />
</Trigger>
<Trigger Property="FixedRowPosition" Value="Bottom">
<Setter TargetName="BottomLine" Property="VerticalAlignment" Value="Top" />
</Trigger>
<Trigger Property="IsLastFixedRow" Value="True">
<Setter TargetName="BottomLine" Property="BorderThickness" Value="0,1,0,1" />
<Setter TargetName="BottomLine" Property="Background" Value="{DynamicResource {dxgt:GridRowThemeKey ResourceKey=RowSeparatorBrush}}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Window.Resources> <Grid>
<dxg:GridControl AutoGenerateColumns="AddNew" Name="gridControl1">
<dxg:GridControl.View>
<dxg:TableView />
</dxg:GridControl.View>
</dxg:GridControl>
</Grid> </Window>

完整Demo

GridControl 给选中的行添加边框显示的更多相关文章

  1. WPF datagrid/gridcontrol 中选中多行,复制粘贴到excel或其他文本编辑器中

    wpf中 data grid 开启自带的选中,然后复制,可以到excel中直接粘贴,在某些业务场景中很实用,方便.开启也很简单: SelectionMode="Row" 加上这个, ...

  2. ALV判断修改后是否有不合法数据,有则选中错误行,高亮度显示。

    alv数据表维护表时错误行需要高亮度显示 gt_index_rows TYPE lvc_t_row,"用以存放要选择行的内表 gs_index_rows TYPE lvc_s_row.&qu ...

  3. datatable的部分问题处理(动态定义列头,给某行添加事件,初始显示空数据)

    一.动态定义列头 在ajax中,用datatable再去重新配置列头,当然传回的数据中,要有对应放列头的键值对 我自定义了Mock数据,用于前端自己交互. 其中,rowdata用于存放传回的数据,co ...

  4. 为WPF和Silverlight的Grid添加边框线(zz)

      Grid是WPF和Silverlight中的一个重要的布局元素,其他的布局元素还有StackPanel, Canvas, Border等等.从字面上说,Grid是一个表格的意思,它的使用也确实很方 ...

  5. 视频特效制作:如何给视频添加边框、水印、动画以及3D效果

    2014-12-08 09:47 编辑: suiling 分类:iOS开发 来源:叶孤城的blog 招聘信息: iOS手机软件开发工程师 iOS工程师 Web后端高级开发工程师 iOS软件工程师 ja ...

  6. jQuery easyUI的datagrid,如何在翻页以后仍能记录被选中的行

    1.先给出问题解决后的代码 <%@ page language="java" import="java.util.*" pageEncoding=&quo ...

  7. JS实战 · 表格行颜色间隔显示,并在鼠标指定行上高亮显示

    思路: 1.获取所有行对象,将需要间隔颜色显示的行对象进行动态的className属性指定:      前提是:先定义好类选择器,就是说给行对象赋予name. 2.高亮用到两个事件:onmouseov ...

  8. UIImageView添加边框和阴影

    - (void)viewDidLoad { [super viewDidLoad]; //添加显示 UIImage *image = [UIImage imageNamed:@"0_wang ...

  9. android 为TextView添加边框

    今天需要在TextView上面添加一个边框,但是TextView本身不支持边框,所以只能采用其他方式,在网上查询了一下,主要有三种方式可以实现1.带有边框的透明图片2.使用xml的shape设置3继承 ...

  10. 使用VIM将文件的其中的连续几行注释删除或者给其中的连续几行添加注释

    一.使用VIM将文件的其中的连续几行注释删除 1.用VIM打开一个文件,比如打开sshd_config文件,以该文件的下面几行为例: #vim  sshd_config 2.此时,按ctrl+v键,使 ...

随机推荐

  1. Prime2_解法二:openssl解密凭据

    Prime2_解法二:openssl解密凭据 本博客提供的所有信息仅供学习和研究目的,旨在提高读者的网络安全意识和技术能力.请在合法合规的前提下使用本文中提供的任何技术.方法或工具.如果您选择使用本博 ...

  2. Java 设计模式——从冰雪经济看设计模式的综合运用(工厂、单例、策略、观察者)

    当冬季的寒风拂过大地,冰雪经济如同一颗璀璨的明珠,在寒冷中散发着炽热的魅力.滑雪场.冰雕展.冰雪主题酒店等各类冰雪产业蓬勃发展,其背后的运营逻辑和策略,与 Java 设计模式有着奇妙的相似之处,为我们 ...

  3. 圆梦:借助云开发 CloudBase实现你的游戏开发梦想

    最近我发现AI产品在不断涌现新动向,尤其是一些技术巨头推出的创新产品.例如,今天我们要探讨的是腾讯云开发的云开发 CloudBase,如果你之前没有听说过这个名字,那可能还记得腾讯云推出的另一个产品- ...

  4. tomcat部署cas6并配置自己的ssl证书

    ​配置并安装tomcat,详见我的文章:windows安装tomcat10 安装必备的软件:(在<windows安装tomcat10>中已详细配置) apache-tomcat-10.1. ...

  5. vue3 重置reactive数据

    有一个formData数据字段,使用class创建一份初始数据与其对应,使用Object.assign进行重置 import { reactive } from 'vue' class InitFor ...

  6. 记一个注意事项:从 forEach argument 返回的 Promise 被忽略

    举例说明: const arr = [1, 2, 3] arr.forEach(async item => { // ... }) 上面的代码校验会出一个警告,从 forEach argumen ...

  7. 【Javaweb】基础开发流程与介绍

    本文档写于2022年7月29日,由于个人水平有限,可能存在一些问题,因此仅供参考 @萌狼蓝天 JavaWeb基础开发流程 1.确定系统和功能 在此以"宠物管理系统"为例,要开发一个 ...

  8. Qt编写物联网管理平台31-用户权限管理

    一.前言 随着需求的不断变化,功能的增多,在用户信息这块,除了需要用户登录退出验证以外,还需要有个简单的用户权限逻辑处理,比如限定某些用户只有查看权限,没有删除记录.清空记录.系统设置的权限,与之相对 ...

  9. 跟着源码学IM(十一):一套基于Netty的分布式高可用IM详细设计与实现(有源码)

    本文由will分享,个人博客zhangyaoo.github.io,原题"基于Netty的IM系统设计与实现",有修订和重新排版. 1.引言 本文将要分享的是如何从零实现一套基于N ...

  10. Python 进阶:深入理解 import 机制与 importlib 的妙用

    大家好,今天我们来深入探讨 Python 中的导入机制和 importlib 模块.相信不少朋友和我一样,平时写代码时可能只用过最基础的 import 语句,或者偶尔用 importlib.impor ...