WPF 实现一个UserControl的问题

zhuwenlubin 2012-11-15 03:09:08
我要实现下面这样一个UC,


比如设备A下面纵向的是时间刻度线,鼠标可以选一段时间,选的时间颜色就变为绿色,怎么实现,提供样例的连接给我也行。
...全文
162 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuwenlubin 2012-11-16
  • 打赏
  • 举报
回复
楼上学习了,不过离我这个控件的功能貌似还差很远,我还想有时间刻度线,可以选取时间段
心灵彩虹 2012-11-15
  • 打赏
  • 举报
回复
WPF中改变选中行的颜色是很简单的,就是用触发器:比如:以DataGrid为例: <DataGrid.RowStyle > <Style TargetType="DataGridRow"> <Setter Property="Background" Value="White"/> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="LightGray"/> </Trigger> <Trigger Property="IsSelected" Value="True"> <Setter Property="Background" Value="LightGray"/> <Setter Property="Foreground" Value="Red"/> </Trigger> </Style.Triggers> </Style> </DataGrid.RowStyle>   但是,我告诉你,如果你没有设置cellStyle,你将会发现上面的代码“貌似”不工作,没用。这一点对 ListView 等等相似控件都是一样的。   事实上,上面代码已经起作用了。IsSelected确实被触发了。问题在哪呢?   答案正确,就在CellStyle上。因为RowStyle 的背景改变了,但CellStyle没变,你是看不出来的。   也就是RowStyle很冤,因为CellStyle是在其上的。所以会被覆盖。原因就是“黑人”“白人”穿着“黑衣服”看起来都是黑的。   改变的方法如下:   加入CellStyle: <DataGrid.CellStyle > <Style TargetType="DataGridCell"> <Style.Triggers > <Trigger Property="IsSelected" Value="True"> <Setter Property="Background" Value="Red"></Setter> </Trigger> </Style.Triggers> </Style> </DataGrid.CellStyle>

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧