Laden...

Grösse eines dynamischen Elements lesen

Erstellt von xbu58 vor 13 Jahren Letzter Beitrag vor 13 Jahren 631 Views
xbu58 Themenstarter:in
92 Beiträge seit 2006
vor 13 Jahren
Grösse eines dynamischen Elements lesen

Hallo

Ich versuche die Grösse eines Popup-Elements (Menu) festzustellen. Diese Popup-Element erstelle ich wie folgt:


...
PopupPosition = ePopupPosition.leftBottom;
PopupMenuControl = new System.Windows.Controls.Primitives.Popup();

MainGrid = new Grid();
PopupMenuControl.Child = MainGrid;

MainGrid.MouseEnter += new MouseEventHandler(Menu_MouseEnter);
MainGrid.MouseLeave += new MouseEventHandler(Menu_MouseLeave);

MainBorder = new Border();
MainGrid.Children.Add(MainBorder);

MainPanel = new StackPanel();
MainBorder.Child = MainPanel;
...

In den MainPanel (StackPanel) werden dann die Menü-Einträge eingefügt, wodurch das Popup-Element je nachdem wieviele MenuItems eingefügt werden, höher bzw. je nach Breite des Textes breiter wird. Soweit alles OK, solange ich das Windows unterhalb der gewünschten Position öffne.
Wenn ich aber das Fenster über und/oder links gewünschten Position öffenen möchte, benötige ich die Grösse des Popups. Da ich jedoch keine explizite Grösse angebe, sind alle Grössenwerte entweder null oder 0.

Gibt es eine Möglichkeit die Grösse eines dynamischen Elements zur Runtime festzustellen, wenn ja wie?

Danke und Gruss
Xaver

151 Beiträge seit 2009
vor 13 Jahren

Hallo xbu58,

bei msdn steht dazu eigentlich ganz gut beschrieben eine ganze Menge...
http://msdn.microsoft.com/de-de/library/system.windows.controls.primitives.popup.aspx

Grüßle
Jéré

xbu58 Themenstarter:in
92 Beiträge seit 2006
vor 13 Jahren

Hallo Jéré

Ich habe vergessen zu erwähnen, dass ich das Popup unter Silverlight 4 benötige. Ich habe jedoch die von Dir erwähnte Seite auch schon angesehen und auch das Beispiel heruntergeladen. Leider handelt es sich dabei um WPF und in Silverlight stehen nicht alle Properties zur Verfügung, welche in WPF vorhanden sind. So ist zu Beispiel die Eigenschaft Placement oder auch PlacementRectangle nicht vorhanden (oder ich finde sich auf dem Popup-Objekt nicht...)

Hast Du noch eine andere Idee?

Gruss
Xaver

151 Beiträge seit 2009
vor 13 Jahren

Hi,

da ich bisher nicht mit Silverlight gearbeitet habe und dieses Kapitel in WPF schon durchgearbeitet habe (da ich ein ähnliches Problem hatte), so dass es für mich dort zufriedenstellend gelöst wurde, kann ich dir leider nicht weiter helfen.
Ich denke, dass es irgendwo eine Eigenschaft gibt, die die aktuelle Position übermitteln kann.

Grüßle
Jéré

xbu58 Themenstarter:in
92 Beiträge seit 2006
vor 13 Jahren

Ja, ich nehme auch an, dass da etwas vorhanden sein muss. Nur wo, und wie. Bis jetzt habe ich noch nichts gescheites gefunden.

Gruss
Xaver