Disconnecting an element from any/unspecified parent container in WPF

You may write a helper class with an extension method: public static class RemoveChildHelper { public static void RemoveChild(this DependencyObject parent, UIElement child) { var panel = parent as Panel; if (panel != null) { panel.Children.Remove(child); return; } var decorator = parent as Decorator; if (decorator != null) { if (decorator.Child == child) { decorator.Child … Read more

Binding ElementName. Does it use Visual Tree or Logical Tree

I think it’s logical tree. When using ControlTemplates, you’re replacing one visual tree with another, but I don’t think you can reference the names defined inside of the ControlTemplate. For example: <Page xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation” xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”> <Grid> <Grid.Resources> <ControlTemplate x:Key=”Foo” TargetType=”Button”> <Border x:Name=”border” Background=”Red”> <Label Content=”{TemplateBinding Content}”></Label> </Border> </ControlTemplate> </Grid.Resources> <Grid.ColumnDefinitions> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> </Grid.ColumnDefinitions> <Button x:Name=”buttonFoo” Background=”Green” … Read more