实现方式,通过自定义 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. 整合Sleuth

    Sleuth是 springcloud 分布式跟踪解决方案. Sleuth 术语: 跨度(span ) :Sleuth 的基本工作单元,他用一个64位的id唯一标识.出ID外,span还包含 其他的数 ...

  2. 通过加密的方式做身份鉴权—Demo设计

    目录 鉴权方式 账号+密码 账号+短信验证码 第三方渠道鉴权--微信 Reference 本文只是一个Demo设计,仅供学习思路,并不能用于真实的线上业务,因为有很多漏洞. 一般线上应用都需要对用户身 ...

  3. Node.js 文件读写

    1.fs模块 在node.js中,所有文件的操作都是通过fs模块来实现的.包括文件目录的创建,删除,查询以及文件的读取,写入. 在fs模块中,所有的方法都分成同步和异步两种实现,具有sync后缀的为同 ...

  4. Ant Design X:卓越的AI界面解决方案

    Ant Design X:卓越的AI界面解决方案 ​​ Ant Design X 是 Ant Design 的全新 AGI 组件库,旨在帮助开发者更轻松地研发 AI 产品用户界面.Ant Design ...

  5. 【Android】屏幕超时休眠

    前言 屏幕超时休眠指的是在设备一段时间没有操作后,自动关闭屏幕显示以节省电量并防止误触.当屏幕进入休眠状态时,通常会关闭屏幕背光,但设备可能仍在运行后台进程. 正文 Settings应用相关 Sett ...

  6. MYSQL8以上修改初始root密码的方法

    很遗憾的告诉你,你网上查到的各种改my.enf ,各种update,在新版MYSQL中,统统失效. 解决方法,如下: 1. [root@yisu-5f735cb14d716 ~]# service m ...

  7. KTL 用C++14写公式的K线工具 - 0.9.3版

    K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...

  8. Spring boot 2.0 之优雅停机

    spring boot 框架在生产环境使用的有一段时间了,它"约定大于配置"的特性,体现了优雅流畅的开发过程,它的部署启动方式(java -jar xxx.jar)也很优雅.但是我 ...

  9. Netty 缓存buffer介绍及使用

    每当你需要传输数据时,它必须包含一个缓冲区.Java NIO API 自带的缓冲区类是相当有限的,没有经过优化,使用 JDK 的ByteBuffer 操作更复杂.缓冲区是一个重要的组建,它是 API的 ...

  10. 记一次语音合成遇到的坑:PCM音频流转WAV

    需求内容: 预合成音:支持将固定音合成并完成上传操作 解决思路: 调用公有云识别引擎,获取识别引擎合成的音频流, 然后将音频流转成wav文件, 最后将文件上传到oss服务器上. 遇到的问题 问题主要在 ...