Простой способ сделать это - определить обработчик для события Loaded
кнопки и добавить в него обработчик:
XAML
<Button Canvas.Left="100" Content="{Binding Name}" ... Loaded="Button_Loaded" />
Code-behind
private void Button_Loaded(object sender, RoutedEventArgs e)
{
var button = (Button)sender;
var layer = AdornerLayer.GetAdornerLayer(button);
// Add the adorner
...
}
Если вы не хотите использовать code-behind, вы можете создать прикрепленное поведение (либо с помощью System.Windows.Interactivity
, либо создавсобственность)