如何:从元素中删除所有装饰器

此示例演示如何以编程方式从指定的 UIElement中删除所有标饰器。

检索 UIElement 上的修饰器

此冗长代码示例删除由 GetAdorners返回的装饰器数组中的所有装饰器。 此示例用于检索名为 UIElement上的装饰器。 如果调用 GetAdorners 中指定的元素没有装饰器, null 则返回。 此代码显式检查空数组,最适用于预期空数组相对常见的应用程序。

Adorner[] toRemoveArray = myAdornerLayer.GetAdorners(myTextBox);
if (toRemoveArray != null)
{
  for (int x = 0; x < toRemoveArray.Length; x++)
  {
    myAdornerLayer.Remove(toRemoveArray[x]);
  }
}
    toRemoveArray = myAdornerLayer.GetAdorners(myTextBox)
If toRemoveArray IsNot Nothing Then
  For x As Integer = 0 To toRemoveArray.Length - 1
    myAdornerLayer.Remove(toRemoveArray(x))
  Next x
End If

代码示例

此精简代码示例在功能上等效于上面所示的详细示例。 此代码不显式检查 null 数组,因此 NullReferenceException 可能会引发异常。 此代码最适合 null 数组出现几率较低的应用程序。

try { foreach (Adorner toRemove in myAdornerLayer.GetAdorners(myTextBox)) myAdornerLayer.Remove(toRemove); } catch { }
Try
        For Each toRemove In myAdornerLayer.GetAdorners(myTextBox)
            myAdornerLayer.Remove(toRemove)
        Next toRemove
Catch
End Try

另请参阅