Jump to content

Recommended Posts

Posted

Αυτό το παράδειγμα δείχνει πώς να παρακάμψετε την προεπιλεγμένη συμπεριφορά της διάταξης ομάδα στοιχείου και να δημιουργήσετε προσαρμοσμένη διάταξη στοιχεία που προέρχονται από την ομάδα.

 

Το παράδειγμα καθορίζει μια απλή παραγγελία πινακίδα στοιχείο κάλεσε plotpanel , η οποία θέσεις παιδικής στοιχεία σύμφωνα με δύο σκληρά κωδικοποιημένα Χ- k y-συντεταγμένες,Το παράδειγμα ορίζει μια απλή συνήθεια Panel στοιχείο που ονομάζεται PlotPanel, οι οποίες θέσεις παιδί στοιχεία σύμφωνα με δύο σκληρά κωδικευμένα x-και y-συντεταγμένες. In this example, X και Y είναι τόσο καθορίζεται σε 50 7 ότι συνεπώς, κάθε παιδί στοιχεία πρέπει να τοποθετούνται σε αυτή την τοποθεσία για το x και y άξονες. Σε αυτό το παράδειγμα, Χ και Υ, που είναι και οι δύο στο 50? Ως εκ τούτου, όλα τα στοιχεία του παιδιού είναι τοποθετημένο στον τόπο αυτό για το Χ και Υ άξονες.

 

Για την εφαρμογή προσαρμοσμένης Panel συμπεριφορές, το παράδειγμα χρησιμοποιεί την MeasureOverride και ArrangeOverride μεθόδους.Κάθε μέθοδος επιστρέφει το μέγεθος των δεδομένων που είναι αναγκαία για την θέση και να καταστήσει την παιδική στοιχεία.

Visual Basic Visual Basic

 

Public Class  PlotPanel Δημόσιας Τάξης PlotPanel

    Inherits  Panel Κληρονομεί Panel

Αντικαθιστά την προεπιλογή Μέτρο μέθοδο της ειδικής ομάδας.

 

    Protected Overrides Function  MeasureOverride( ByVal  availableSize As  System.Windows.Size) As  System.Windows.Size Προστατευόμενες Παρακάμπτει Function MeasureOverride (ByVal availableSize Όπως System.Windows.Size) Όπως System.Windows.Size

        Dim  childSize As  Size = CType(availableSize, Size) Δημ. childSize Ως Μέγεθος = CType (availableSize, μέγεθος)

        For Each  child As  UIElement In  InternalChildren Όπως για κάθε παιδί UIElement Σε InternalChildren

            child.Measure(childSize) child.Measure (childSize)

        Next Επόμενος

        Return MyBase .MeasureOverride(availableSize) Επιστροφή MyBase. MeasureOverride (availableSize)

    End Function End Function

    Protected Overrides Function  ArrangeOverride( ByVal  finalSize As  System.Windows.Size) As  System.Windows.Size Προστατευόμενες Παρακάμπτει Function ArrangeOverride (ByVal finalSize Όπως System.Windows.Size) Όπως System.Windows.Size

        For Each  child As  UIElement In  InternalChildren Όπως για κάθε παιδί UIElement Σε InternalChildren

            Dim  x As Double  = 50 Dim x As Double = 50

            Dim  y As Double  = 50 Δημ. y Όπως Δίκλινο = 50

            child.Arrange( New  Rect( New  System.Windows.Point(x, y), child.DesiredSize)) child.Arrange (Νέα Ορθ (Νέα System.Windows.Point (x, y), child.DesiredSize))

        Next Επόμενος

        Return MyBase .ArrangeOverride(finalSize) Επιστροφή MyBase. ArrangeOverride (finalSize)

    End Function End Function

End Class End Class

 

C# C #

 

public class  PlotPanel : Panel δημόσια τάξη PlotPanel: Panel

{ (

    // Default public constructor / / Default constructor δημόσια

    public  PlotPanel() δημόσια PlotPanel ()

        : base () : Βάσης ()

    { (

    } )

 

    // Override the default Measure method of Panel / / Αντικαθιστά την προεπιλεγμένη Μέτρο μέθοδο της ειδικής ομάδας

    protected  override Size MeasureOverride(Size availableSize) προστατεύονται υπερισχύει MeasureOverride Μέγεθος (Size availableSize)

    { (

        Size panelDesiredSize = new  Size(); Μέγεθος panelDesiredSize = νέα Μέγεθος ()?

 

        // In our example, we just have one child. / / Στο παράδειγμά μας, θα έχουν μόνο ένα παιδί.

        // Report that our panel requires just the size of its only child. / / Έκθεση της ομάδας μας που απαιτεί μόνο το μέγεθος του μόνο παιδί.

        foreach  (UIElement child in  InternalChildren) foreach (UIElement παιδί στην InternalChildren)

        { (

            child.Measure(availableSize); child.Measure (availableSize)?

            panelDesiredSize = child.DesiredSize; panelDesiredSize = child.DesiredSize?

        } )

 

        return  panelDesiredSize ; επιστροφή panelDesiredSize?

    } )

    protected  override Size ArrangeOverride(Size finalSize) προστατεύονται υπερισχύει ArrangeOverride Μέγεθος (Size finalSize)

    { (

        foreach  (UIElement child in  InternalChildren) foreach (UIElement παιδί στην InternalChildren)

        { (

            double x = 50; διπλό x = 50?

            double y = 50; διπλή y = 50?

 

            child.Arrange( new  Rect( new  Point(x, y), child.DesiredSize)); child.Arrange (νέα Ορθ (νέο σημείο (x, y), child.DesiredSize))?

        } )

        return  finalSize; // Returns the final Arranged size επιστροφή finalSize? / / Επιστρέφει τακτοποιηθεί το τελικό μέγεθος

    } )

} )

 

Visual C++ Visual C + +

 

public : κοινό:  

   ref class  PlotPanel : Panel { αναφ. PlotPanel κατηγορία: Πάνελ (

 

   public : κοινό:  

      PlotPanel () {}; PlotPanel () ()?

 

   protected : προστατεύονται:  

      // Override the default Measure method of Panel / / Αντικαθιστά την προεπιλεγμένη Μέτρο μέθοδο της ειδικής ομάδας

 

      virtual Size MeasureOverride (Size availableSize) override εικονική Μέγεθος MeasureOverride (Μέγεθος availableSize) υπερισχύουν  

      { (

         Size childSize = availableSize; Μέγεθος childSize = availableSize?

         for  each (UIElement^ child in  InternalChildren) για κάθε μία (UIElement ^ παιδιού σε InternalChildren)

         { (

            child->Measure(childSize); παιδί-> Μέτρο (childSize)?

         } )

         return  availableSize; επιστροφή availableSize?

      }; )?

 

   protected : προστατεύονται:  

      virtual System::Windows::Size ArrangeOverride (Size finalSize) override εικονική System:: Windows:: Μέγεθος ArrangeOverride (Μέγεθος finalSize) υπερισχύουν  

      { (

         for  each (UIElement^ child in  InternalChildren) για κάθε μία (UIElement ^ παιδιού σε InternalChildren)

         { (

            double x = 50; διπλό x = 50?

            double y = 50; διπλή y = 50?

            child->Arrange(Rect(Point(x, y), child->DesiredSize)); παιδί-> Arrange (Ορθ (Το σημείο (x, y), παιδί-> DesiredSize))?

         } )

         return  finalSize; επιστροφή finalSize?

      }; )?

   }; )?

Exei ksana ginei post apo mena alla afto einai sta elinika

Credits ston Qoswarth kai se mena gia tin metafrasi (sxedon metafrasi :P)

Posted

Oreo guide kai poli xrisimo (egw dn ixera pws mporousa na kanw ena prosarmosmeno panel kai 8a mou fanei xrisimo..) +1 (kai added sta favorites) alla molis mporeseis megalwse ta grammata kai allaxe ta xrwmata (kai +1 oxi epeidi einai metafrasmeno alla egw eida kai to aggliko kai einai xrisimo alla 8a sou dwsw +1 se auto to topic :P )

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...