我正在开发一个图表控件,在其中绘制“分析范围”,它只是图表上的两条垂直线。当我想更改分析范围时,就会出现问题,因为我不知道如何仅删除两条分析范围线,所以我最终会清除图表并再次绘制实际数据值等等。有没有办法标记这些 UI 元素(即分析范围是网格线 UI 元素),以便我可以专门删除它们?我想我可以将 UI 元素的“索引”保存在某处并删除它们,但我想知道是否有更干净的方法来执行此操作。多谢。
All UIElement
s 有一个 UID,它是一个字符串。您可以将范围线的 UID 设置为可预测的值。请记住,UID 必须是唯一的。然后,当您只需要删除网格线时,您可以迭代 Children 集合,收集需要删除的 UI 元素的列表,然后删除它们。
像这样的东西:
Canvas c = new Canvas();
c.Children.Add( new UIElement() { Uid = "Line1" } );
c.Children.Add( new UIElement() { Uid = "Line2" } );
c.Children.Add( new UIElement() { Uid = "Line3" } );
c.Children.Add( new UIElement() { Uid = "Text1" } ); //This is added as a sample
List<UIElement> itemstoremove = new List<UIElement>();
foreach (UIElement ui in c.Children)
{
if (ui.Uid.StartsWith("Line"))
{
itemstoremove.Add(ui);
}
}
foreach (UIElement ui in itemstoremove)
{
c.Children.Remove(ui);
}
那应该有效。在调试中对此代码进行快速测试显示子项计数为 1,仅UIElement
列表中存在 Text1 的 Uid。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)