Xamarin devexpress datagrid 样式
DevExpress的提供光与暗的内置,可以应用到主题GridControl改变其外观。
|
主题 |
iOS版 |
Android版 |
|
光 |
|
|
|
黑暗 |
|
|
应用预定义的主题
该主题类存储提供的主题名称。要更改主题,分配主题类的相应字段的ThemeManager.ThemeName
|
|
||
|
using Xamarin.Forms; using DevExpress.Mobile.DataGrid.Theme; // ... ThemeManager.ThemeName = Themes.Dark; // ... |
自定义主题
要自定义应用的主题,使用ThemeBase类。它为您提供各种定制,使您可以更改主题的外观,并将其应用到电网。您可以使用这些定制来改变背景颜色,字体和所需的网格单元(头,属性组行等)
重要
要应用定制,调用ThemeManager.RefreshTheme方法。
该ThemeBase类的属性提供访问不同的定制,你可以调整来改变外观设置(例如,字体属性,边框和背景颜色等)网格的相应的视觉元素(如数据单元格,行分组,过滤器面板等)。在本实施例中,使用下面的定制。
为了跟踪时刻变化的主题,无论是处理ThemeManager.ThemeChanged事件或使用IThemeChangingHandler.OnThemeChanged方法。
这个例子定制光主题,因为它是在下面的图片中显示。

|
|
||
|
using System; using System.Collections.Generic; using Xamarin.Forms; using DevExpress.Mobile.DataGrid; using DevExpress.Mobile.DataGrid.Theme; namespace ThemeCustomizing { public int count = 0; public MainPage() { InitializeComponent(); TestOrdersRepository model = new TestOrdersRepository(); BindingContext = model; ThemeManager.ThemeName = Themes.Light; // Header customization. ThemeManager.Theme.HeaderCustomizer.BackgroundColor = Color.FromRgb(187, 228, 208); ThemeFontAttributes myFont = new ThemeFontAttributes("Verdana", ThemeFontAttributes.FontSizeFromNamedSize(NamedSize.Large), FontAttributes.None, Color.White); ThemeManager.Theme.HeaderCustomizer.Font = myFont; // Cell customization. ThemeManager.Theme.CellCustomizer.SelectionColor = Color.FromRgb(186, 220, 225); ThemeFontAttributes myFont1 = new ThemeFontAttributes("Verdana", ThemeFontAttributes.FontSizeFromNamedSize(NamedSize.Medium), FontAttributes.None, Color.Black); ThemeManager.Theme.CellCustomizer.Font = myFont1; // Various customization. ThemeManager.Theme.TotalSumaryCustomizer.BackgroundColor = Color.FromRgb(163, 162, 168); ThemeFontAttributes myFont2 = new ThemeFontAttributes("Verdana", ThemeFontAttributes.FontSizeFromNamedSize(NamedSize.Default), FontAttributes.None, Color.Black); ThemeManager.Theme.TotalSummaryCustomizer.Font = myFont2; ThemeManager.Theme.NewItemRowCustomizer.Font = myFont2; ThemeManager.RefreshTheme(); } void OnCalculateCustomSummary(object sender, CustomSummaryEventArgs e) { if (e.FieldName.ToString() == "Shipped") if (e.IsTotalSummary) { if (e.SummaryProcess == CustomSummaryProcess.Calculate) { if (!(bool)e.FieldValue) count++; e.TotalValue = count; } } } } } |
自定义模板列、滑动显示按钮
<dxGrid:GridControl
x:Name="grid"
ItemsSource="{Binding JDProduct}"
AllowResizeColumns="True"
AllowHorizontalScrollingVirtualization="True"
ColumnsAutoWidth="False"
SwipeButtonShowing="OnSwipeButtonShowing"
SwipeButtonClick="OnSwipeButtonClick"
>
<dxGrid:GridControl.Columns>
<dxGrid:TemplateColumn
FieldName="Name"
Caption ="112"
Width ="60"
IsReadOnly="true"
AllowGroup="False"
AllowSort="False" >
<dxGrid:TemplateColumn.DisplayTemplate>
<DataTemplate>
<Button
Text="{Binding Value}"
Clicked="nameClient"
BorderWidth="0"
BackgroundColor="Green"
TextColor="White"
></Button>
</DataTemplate>
</dxGrid:TemplateColumn.DisplayTemplate>
</dxGrid:TemplateColumn>
<dxGrid:TextColumn
FieldName="Name"
Caption = "名字"
Width = "100" />
<dxGrid:NumberColumn
FieldName="UnitPrice"
Caption = "价格"
DisplayFormat="C0"/>
<dxGrid:DateColumn
FieldName="Date"
DisplayFormat="d"/>
<dxGrid:SwitchColumn
FieldName="Shipped" />
<dxGrid:TextColumn
FieldName="Name"
Caption = "Product" />
<dxGrid:TextColumn
FieldName="Name"
Caption = "Product" />
<dxGrid:TextColumn
FieldName="Name"
Caption = "Product" />
<dxGrid:TextColumn
FieldName="Name"
Caption = "Product" />
<dxGrid:TextColumn
FieldName="Name"
Caption = "Product" />
<dxGrid:TextColumn
FieldName="Name"
Caption = "Product" />
</dxGrid:GridControl.Columns>
<dxGrid:GridControl.LeftSwipeButtons>
<dxGrid:SwipeButtonInfo
ButtonName="LeftButton"
Caption="打印"
BackgroundColor="Green"
Width="150"/>
</dxGrid:GridControl.LeftSwipeButtons>
</dxGrid:GridControl>
特殊说明:如果直接使用绑定的文本则使用 Value关键字,绑定对象则可以直接使用Value.XXX
后端.cs代码绑定事件
void OnSwipeButtonShowing(object sender, DevExpress.Mobile.DataGrid.SwipeButtonShowingEventArgs e)
{
if ((!(Boolean)grid.GetCellValue(e.RowHandle, "Shipped"))
&& (e.ButtonInfo.ButtonName == "RightButton"))
{
e.IsVisible = false;
}
}
void OnSwipeButtonClick(object sender, DevExpress.Mobile.DataGrid.SwipeButtonEventArgs e)
{
if (e.ButtonInfo.ButtonName == "LeftButton")
{
string orderDate = (string)grid.GetCellValue(e.RowHandle, " Name");
string orderDateDay = orderDate;
DisplayAlert("Alert from " + e.ButtonInfo.ButtonName, "Day: " + orderDateDay, "OK");
}
if (e.ButtonInfo.ButtonName == "RightButton")
{
grid.DeleteRow(e.RowHandle);
}
}
Xamarin devexpress datagrid 样式的更多相关文章
- WPF DataGrid 样式设置
隔行换色,鼠标单击,悬浮样式都有,其具体效果如图 1 所示. 图 1 WPF DataGrid 样式设置效果图 其中: 界面设计代码下所示 ? + 查看代码 1 2 3 4 5 6 7 8 9 10 ...
- DevExpress皮肤样式
[时间] 2016-02-15 11:41:11 天气晴 没有雾霾难得的好天气!!! [工具] (1)Visual Studio 2015 (2)DevExpress15.2.3 [感言] 一直以来都 ...
- WPF DataGrid 样式分享
原文:WPF DataGrid 样式分享 隔行换色,鼠标单击,悬浮样式都有 先看效果: 代码: <DataGrid AutoGenerateColumns="False" N ...
- Xamarin devexpress Grid
Devexpress 提供了datagrid 控件对于xamarin 进行支持.整个世界美好了,已经无法用语言来形容一个 被列表控件折磨的要死的人看到熟悉的图标时候的激动了.还有一点引用官网的原话: ...
- Xamarin.Forms DataGrid
控件出处 https://components.xamarin.com/ https://components.xamarin.com/gettingstarted/ZumeroDataGrid/tr ...
- WPF随手小记之二 ——改变DataGrid样式
大部分时候我们并不需要手动改变DataGrid的样式,因为用默认的其实也看得过去,而且在DataGrid中的数据也远比外观重要. 但总有时候,我们需要做点必要的UI修改来使DataGrid更美观. 一 ...
- Xamarin.Forms之样式
使用XAML样式设置Xamarin.Forms应用的样式Xamarin.Forms应用程序的样式传统上是通过使用Style类将一组属性值分组到一个对象中来完成的,然后可以将其应用于多个视觉元素实例. ...
- wpf 收集的不错的datagrid样式
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...
- DataGrid样式
1.自定义列(DataGridTemplateColumn) <DataGridTemplateColumn Width="130"> <DataGridTemp ...
随机推荐
- python成长笔记
正则表达式 1. 择一匹配:管道符号(|),表示“从多个模式中选择其一”.例:at|home à at.home 2. 点号匹配除了换行符以外的任何字符 3. 边界匹配:\b匹配一个 ...
- Kernel 4.9的BBR拥塞控制算法。
重要的事情说三遍! BBR并不能突破带宽限制!!! BBR并不能突破带宽限制!!! BBR并不能突破带宽限制!!! 它的功能如下: 1.在高丢包率与低速率的网络中提升传输效果,充分利用带宽. 2.降低 ...
- jQuery Ajax 的 load()方式
load() 方法 load() 是所有jQuery工具中最简单的,向它传入一个URL,它会异步加载URL内的内容,然后将内容插入每一个选中元素中,替换掉已经存在的任何内容. 例如 $(" ...
- quick-cocos2dx学习笔记
20140603 下载quick,拉开拉链,跑setup.bat(注意,setup事就是在系统环境变量里加入QUICK_COCOS2DX_ROOT,假设不运行这个的话,启动player时会报找不到fr ...
- android不自动弹出虚拟键盘
如果是Activity的话 在 Manifest.xml 相应的 Activity 里添加 android:windowSoftInputMode="adjustPan|stateHidde ...
- Zend框架2入门(二) (转)
Zend框架2使用一个模块系统,和你组织内每个你的主应用程序特定代码模块.骨架提供的应用程序模块是用于提供引导,错误和路由配置到整个应用程序.它通常是用来提供应用水平控制器,比如说,应用程序的主页,但 ...
- karma、jasmine做angularjs单元测试
引用文:karma.jasmine做angularjs单元测试 karma和jasmine介绍 <1>技术介绍 karma karma是Testacular的新名字 karma是用来自动化 ...
- centos5.5上apache快速安装H264流媒体支持MP4-H264边下边播
2013年的某一天,客户反馈北京同事做的广告视频下载速度好慢,几MB的视频在手机上要下载接近一分钟才能开始播放. 我分析后发现两点:1)托管的服务器没支持流媒体:2)广告视频MP4并非流媒体格式. 对 ...
- MediaPlayer 音频播放 示例
状态机.流程图.生命周期 对播放音频/视频文件和流的控制是通过一个状态机来管理的.下图显示一个MediaPlayer对象被支持的播放控制操作驱动的生命周期和状态. 椭圆代表MediaPlayer对象可 ...
- (转)使用DataTime这个类来获取当前的时间
我们可以通过使用DataTime这个类来获取当前的时间.通过调用类中的各种方法我们可以获取不同的时间:如:日期(--).时间(::).日期+时间(-- ::)等. //获取日期+时间 DateTime ...



