WPF 自定义文本列表
2015-08-24 12:35
190 查看
自定义的WPF文本列表样式
一、直接把样式贴出来
二、如何使用
三、如何添加省略号。。。
StringSupplement(YourTitle,32,"...")
一、直接把样式贴出来
<!--文本列表样式--> <Style x:Key="TextItemsListStyle" TargetType="ItemsControl"> <Setter Property="ItemsPanel"> <Setter.Value> <ItemsPanelTemplate> <StackPanel Orientation="Vertical"/> </ItemsPanelTemplate> </Setter.Value> </Setter> <Setter Property="ItemTemplate"> <Setter.Value> <DataTemplate> <StackPanel Orientation="Horizontal"> <Ellipse Width="4" Height="4" Margin="6,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Left" Fill="Gray"></Ellipse> <Label Height="25" Content="{Binding Visual}" ToolTip="{Binding Title}" Foreground="#659BFF"/> </StackPanel> </DataTemplate> </Setter.Value> </Setter> </Style>
二、如何使用
<ItemsControl Style="{StaticResource TextItemsListStyle}" Name="ItemList"/> this.ItemList.ItemsSource = new List<object>() { new { Title = "第1行文本提示",Visual = "第1行文本内容"}, new { Title = "第2行文本提示",Visual = "第2行文本内容"}, new { Title = "第3行文本提示",Visual = "第3行文本内容"} };
三、如何添加省略号。。。
StringSupplement(YourTitle,32,"...")
public string StringSupplement(string OldString,int MaxLeght,string EndString = "") { string NewString = OldString; int EndLength = 0; for (int nIndex = 0; nIndex < EndString.Length; nIndex++) { byte[] byte_len = System.Text.Encoding.Default.GetBytes(EndString.Substring(nIndex, 1)); if (byte_len.Length > 1) EndLength += 2; //如果长度大于1,是中文,占两个字节,+2 else EndLength += 1; //如果长度等于1,是英文,占一个字节,+1 } int Length = 0; for (int nIndex = 0; nIndex < OldString.Length; nIndex++) { byte[] byte_len = System.Text.Encoding.Default.GetBytes(OldString.Substring(nIndex, 1)); //如果长度大于1,是中文,占两个字节,+2 //如果长度等于1,是英文,占一个字节,+1 Length += byte_len.Length > 1 ? 2 : 1; //如果长度超出添加结束字符串 if (Length + EndLength > MaxLeght) { NewString = OldString.Substring(0, nIndex) + EndString; break; } } return NewString; }
相关文章推荐
- 本地调试,ie 谷歌浏览器都正常,但是将网站部署到服务器上发现ie内核css样式出现问题
- [LeedCode OJ]#26 Remove Duplicates from Sorted Array
- html+vlc 播放多视频
- 求两个整数的平均值
- C++ STL
- ZOJ 1516--Uncle Tom's Inherited Land【二分图 && 求最大匹配数 && 经典建图】
- 洛谷1969 积木大赛 解题报告
- 网络扫描工具学习
- base64编码和解码
- Android Launcher分析和修改1——Launcher默认界面配置(default_workspace)
- HDU 胜利大逃亡 【BFS模板题】
- 使用vim作为python ide -插件管理
- java quartz的使用,做时间轮询调用 CronTrigger
- windows下安装Apache 64bit
- file(),file_get_contents(),fopen()->fread()->fclose(),fgets(),fgetc()
- 黑马程序员_反射与枚举
- Excel中高亮一行中最小的数据
- 解决mysql无法登陆
- CentOS7 安装 使用 Docker
- [LeedCode OJ]#20 Valid Parentheses