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

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

示例

此详细的代码示例移除由 GetAdorners 返回的装饰器数组中的所有装饰器。 此示例恰好从名为 myTextBoxUIElement 中检索装饰器。 如果在对 GetAdorners 的调用中指定的元素没有装饰器,则返回 null。 此代码显式检查 null 数组,最适用于其中 null 数组相对来说应比较常见的应用程序。

            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
Adorner[] toRemoveArray = myAdornerLayer.GetAdorners(myTextBox);
if (toRemoveArray != null)
{
  for (int x = 0; x < toRemoveArray.Length; x++)
  {
    myAdornerLayer.Remove(toRemoveArray[x]);
  }
}

此简化的代码示例在功能上等效于上述详细示例。 此代码不显式检查 null 数组,因此可能会引发一个 NullReferenceException 异常。 此代码最适用于其中应很少出现 null 数组的应用程序。

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

请参见

概念

装饰器概述