DataGrid样式
1、自定义列(DataGridTemplateColumn)
<DataGridTemplateColumn Width="130">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="D:\资源\图片\VR.png" Width="20" Visibility="{Binding Path=url,Converter={StaticResource visibilityConvert}}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
中间用了一个转换器 visibilityConvert,因为我要实现有url字段时显示图片没有就不显示图片
转换器:
public class UrlToVisibility : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null){ value = ""; };
string result = value.ToString();
if (result==null || result=="")
{
return Visibility.Hidden;
}
else
{
return Visibility.Visible;
}
} public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
界面引用:<convert:UrlToVisibility x:Key="visibilityConvert"/> 即可
2、改变选中行的样式
在网上找的别人的代码是这样的
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Height" Value="40"></Setter>
<Setter Property ="Background" Value ="#4C238BFF"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FF6493CE"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#b58d20"/>
<Setter Property="Foreground" Value="Yellow"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
可是并没有实现我想要的效果,后来才知道原来是被CellStyle挡住了RowStyle重新设置CellSyle即可
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="BorderThickness" Value="0"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#FF6493CE"/>
<Setter Property="Foreground" Value="Yellow"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
3、添加复选框列(继续采用上面的自定义列实现):
<DataGridTemplateColumn Header=" " Width="50">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Background="Transparent" BorderBrush="AliceBlue" BorderThickness="1" Tag="{Binding}" VerticalAlignment="Center" HorizontalAlignment="Center" Checked="Cb_Checked" Unchecked="Cb_Checked" >
<CheckBox.Template>
<ControlTemplate TargetType="CheckBox">
<Border Width="16" Height="16" BorderBrush="Red" BorderThickness="1" Background="#22238BFF">
<Path Data="M 2,8 L6,12 12,2" Fill="Transparent" Opacity="0" Stroke="Yellow" StrokeThickness="2" VerticalAlignment="Center" HorizontalAlignment="Left" x:Name="selectpath"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Opacity" TargetName="selectpath" Value="1"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</CheckBox.Template>
</CheckBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
效果图如下:

DataGrid样式的更多相关文章
- WPF DataGrid 样式设置
隔行换色,鼠标单击,悬浮样式都有,其具体效果如图 1 所示. 图 1 WPF DataGrid 样式设置效果图 其中: 界面设计代码下所示 ? + 查看代码 1 2 3 4 5 6 7 8 9 10 ...
- WPF DataGrid 样式分享
原文:WPF DataGrid 样式分享 隔行换色,鼠标单击,悬浮样式都有 先看效果: 代码: <DataGrid AutoGenerateColumns="False" N ...
- WPF随手小记之二 ——改变DataGrid样式
大部分时候我们并不需要手动改变DataGrid的样式,因为用默认的其实也看得过去,而且在DataGrid中的数据也远比外观重要. 但总有时候,我们需要做点必要的UI修改来使DataGrid更美观. 一 ...
- wpf 收集的不错的datagrid样式
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...
- Xamarin devexpress datagrid 样式
DevExpress的提供光与暗的内置,可以应用到主题GridControl改变其外观. 主题 iOS版 Android版 光(默认适用于iOS) 黑暗(默认为Android) 应用预定义的主题 ...
- DataGrid 样式
<SolidColorBrush x:Key="OutsideFontColor" Color="#FF000000" /> <LinearG ...
- WPF日积月累之DataGrid样式以及操作数据模板中的控件
一.效果图 二.代码预览 1 <Window x:Class="Test.MainWindow" 2 xmlns="http://schemas.microsoft ...
- WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: Dat ...
- EasyUI - DataGrid 组建 - [ 样式功能 ]
效果显示: 同上次博文效果. html代码: 同上次博文代码. js代码: align: 'center',//标题和内容居中 resizable: false,//不允许改变大小 //hidden: ...
随机推荐
- vue学习(十五) 过滤器简单实用
vue过滤器: 概念:vue.js允许你自定义过滤器可被用作一些常见文本的格式化.过滤器可以用在两个地方:插值表达式 v-bind表达式 由管道符指示 //过滤器调用时候的格式 {{ name ...
- 面试题三十:包含min函数的栈
定义一个栈的数据结构,请实现一个每次都能找到栈中的最小元素,要求时间复杂度O(1).意思就是说每次进栈出栈后,min函数总能在时间1的前提下找到.方法一:由于每次循序遍历栈的话时间复杂度为n,所以要想 ...
- 清晰架构(Clean Architecture)的Go微服务—重大升级
去年,我创建了一个清晰架构(Clean Architecture)微服务框架,它功能强大,但有些重.我写了一个系列文章来讲述它,请参阅"清晰架构(Clean Architecture)的Go ...
- JavaScript运算符与流程控制
JavaScript运算符与流程控制 运算符 赋值运算符 使用=进行变量或常量的赋值. <script> let username = "YunYa"; < ...
- MyBatis----resultMap的使用
- circle踢人(约瑟夫环) c++
这里更新指针法,真的每句都是坑 (寥寥数十句,句句都是坑) // // Created by snnnow on 2020/4/12. //question:转圈,一共N个人,数到M的出列,求最后一个 ...
- PHP 怎么安装
您需要做什么? 为了开始使用 PHP,您可以: 找一个支持 PHP 和 MySQL 的 Web 主机 在您自己的 PC 机上安装 Web 服务器,然后安装 PHP 和 MySQL 使用支持 PHP 的 ...
- Python os.mknod() 方法
概述 os.mknod() 方法用于创建一个指定文件名的文件系统节点(文件,设备特别文件或者命名pipe).高佣联盟 www.cgewang.com 语法 mknod()方法语法格式如下: os.mk ...
- PHP array_intersect_key() 函数
实例 比较两个数组的键名,并返回交集: <?php$a1=array("a"=>"red","b"=>"gree ...
- CF R 635 div1 C Kaavi and Magic Spell 区间dp
LINK:Kaavi and Magic Spell 一打CF才知道自己原来这么菜 这题完全没想到. 可以发现 如果dp f[i][j]表示前i个字符匹配T的前j个字符的方案数 此时转移变得异常麻烦 ...