在wpf中的形状上绘制文本
你们当中有些人可能会觉得这个问题很沉闷,但我仍然不习惯wpf绘画。 我想在Rectangle上添加格式化文本,它在canvas上移动,我有一个提示来覆盖UIElement.OnRender方法。 但是我不知道是否应该覆盖canvas类或Shape类。 在任何正确的情况下,参考示例中描述的方法的drawingContext参数: http : //msdn.microsoft.com/en-us/library/bb613560.aspx#FormattedText_Object ?
文本最终是分配给形状还是视觉临时效果,不能随着canvas上的形状一起移动?
是否有任何进一步有效的方法在形状上绘制文字?
您可以通过将两个控件放在允许控件重叠的父容器中来绘制矩形顶部的Text,例如Grid
或Canvas
然后,您可以将任何格式应用于Label
, Rectangle
,并可以通过设置Grid
的位置来移动组
Rachel的答案是正确的,虽然你可以扩展一点,有一些UserControl定义为:
并且在codebehind中定义1. Label:String DependencyProperty,Shape:UIElement DependencyProperty。
处理Shape的更改事件并调用:
private void UpdateShape() { grdShapeContainer.Children.Clear(); if(this.Shape != null) { grdShapeContainer.Children.Add(this.Shape); } }
通过这种方式,您将能够使事物变得动态。
此致,阿塔克
您可能还需要查看ZIndex
属性,该属性可以在Grid( ZIndex
其他项目)等对象上设置,这对于制作“loading”等内容非常有用屏幕。
- 无法将类型为“System.Int32”的对象强制转换为在DataReader.GetString()中键入“System.String”
- 从代码中关闭Silverlight中的Out of Browser应用程序
- 如何从CrystalReport调用StoredProcedure?
- 在GDI +中resize时的Ghost-border(’振铃’)
- 即使我知道没有交集,SqlGeography.STIntersection()也会返回
- 如何在C#中使用iTextSharp获取pdf文件中的特定段落?
- 尝试使用JSON.Net来使用SmartyStreets JSON ……“无法将JSON数组反序列化为类型组件”
- C#的对象缓存
- sp #f在C#中?