如何:从元素移除装饰器

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

检索 UIElement 上的装饰器

此详细代码示例移除由 GetAdorners 返回的装饰器数组中的第一个装饰器。 此示例恰好检索名为 myTextBox 的 UIElement 上的装饰器。 如果在对 GetAdorners 的调用中指定的元素没有装饰器,则返回 null。 此代码显式检查 NULL 数组,最适合预期 NULL 数组相对常见的应用程序。

Adorner[] toRemoveArray = myAdornerLayer.GetAdorners(myTextBox);
Adorner toRemove;
if (toRemoveArray != null)
{
  toRemove = toRemoveArray[0];
  myAdornerLayer.Remove(toRemove);
}
Dim toRemoveArray() As Adorner = myAdornerLayer.GetAdorners(myTextBox)
Dim toRemove As Adorner
If toRemoveArray IsNot Nothing Then
  toRemove = toRemoveArray(0)
  myAdornerLayer.Remove(toRemove)
End If

示例

此精简代码示例在功能上等同于上面所示的详细示例。 此代码不会显式检查 NULL 数组,因此可能会引发 NullReferenceException 异常。 此代码最适合 NULL 数组预期很少见的应用程序。

try { myAdornerLayer.Remove((myAdornerLayer.GetAdorners(myTextBox))[0]); } catch { }
Try
    myAdornerLayer.Remove((myAdornerLayer.GetAdorners(myTextBox))(0))
Catch
End Try

另请参阅