J'ai un problème avecGetAdornerLayer retour null
AdornerLayer AdornerLayer = AdornerLayer.GetAdornerLayer (mise en page);
Cette méthode renvoie toujours la valeur null.
Qu'est-ce que je fais mal?
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Layout layout = new Layout();
layout.Background = Brushes.White;
layout.ClipToBounds = true;
layout.SnapsToDevicePixels = true;
layout.Width = 4965; layout.Height = 3515;
AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(layout);
adornerLayer.Add(new LayoutAdorner(layout));
}
}
public class Layout : Canvas
{
public Visual GetVisualChildAtPoint(Point point)
{
return VisualTreeHelper.HitTest(this, point).VisualHit as Visual;
}
}
public class LayoutAdorner : Adorner
{
public LayoutAdorner(UIElement adornedElement) : base(adornedElement) { }
protected override void OnRender(DrawingContext drawingContext)
{
}
}
Merci vous pour ta réponse. Comment voulez-vous dire cela? – user2296810
@ user2296810 Déplacez le code de l'adorateur dans l'événement Loaded - voir http://stackoverflow.com/questions/651013/why-to-run-code-in-method-called-by-xaml-window-loaded pour la plomberie il y –
j'ai créé un bouton, donc la fenêtre est créée mais elle ne fonctionne pas private void button1_Click (expéditeur d'objet, RoutedEventArgs e) { Layout layout = new Layout(); layout.Background = Brosses.White; layout.ClipToBounds = true; layout.SnapsToDevicePixels = true; layout.Width = 4965; disposition.Hauteur = 3515; AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer (disposition); adornerLayer.Ajouter (nouveau LayoutAdorner (layout)); } – user2296810