See Also

UIElement Class  | UIElement Members

Language

Visual Basic

C#

Show All

See Also Languages Infragistics2.Win.v7.2

RectInsideBorders Property

Infragistics.Win Namespace > UIElement Class : RectInsideBorders Property (UIElement)

Returns the rectangle after adjusting for any borders

[Visual Basic]
Public Overridable ReadOnly Property RectInsideBorders As Rectangle
[C#]
public virtual Rectangle RectInsideBorders {get;}

Example

This code overrides the positionChildElements virtual method of UIElement. This sample shows two different methods for creating and positioning child elements.

[Visual Basic] 

    Imports System.Collections
    Imports Infragistics.Win

    Protected Overrides Sub PositionChildElements()

        ' Since RectInsideBorders is calculated on each get, it is
        ' best to cache the rect returned rather than make multiple
        ' calls to RectInsideBorders.
        Dim workRect As Rectangle = Me.RectInsideBorders


        ' Store a reference to the ChildElements collection,
        ' we will be using it in our calls to ExtractExistingElement.
        Dim ChildElements As ArrayList = Me.ChildElements


        ' Null out the ChildElements collection
        Me.childElementsCollection = Nothing


        ' We will be taking two approaches on child element creation.
        ' The complexity of both methods is rather simple, however
        ' the appropriateness of the methods is what you should consider when
        ' making your determination of which to use.

        ' It should be noted that
        ' you should be careful if you mix and match the methods. As you cannot
        ' use them on the same type.

        ' The first method uses a variable of the type TextUIElement.
        ' The field is private to the class, and is created through a get
        ' property. This is most appropriate for single instances of an element
        'that will always be visible.

        ' Here we use the control property to set the
        ' TextElement's text to the Control's Text property.
        Me.TextElement.Text = Control.Text

        Dim textRect As Rectangle = workRect
        textRect.Height -= workRect.Height / 4
        Me.TextElement.Rect = textRect


        ' The second method does not use a field. Rather it checks the
        ' ChildElements collection to see if an element of that type already
        ' exists and returns it to be re-used. If it does not exist in the collection,
        ' then we create one. This approach is more appropriate for many elements that may not
        ' always be displayed. It saves memory by re-using elements, rather than
        ' creating new ones all the time.

        ' Create and set position of Button UIElement
        ' Notice we are not passing in ChildElements, but rather a reference to the
        ' old collection that was populated in the previous call to
        ' PositionChildElements.
        Dim buttonElement As ButtonUIElement = GetButtonElement(ChildElements)

        If me.Enabled then
                buttonElement.Text = "Click Me!"
            Else
                buttonElement.Text = "Disabled"
            End If


        Dim buttonRect As Rectangle = workRect

        buttonRect.Size = New Size(workRect.Width / 2, workRect.Height / 4)
        buttonRect.Location = New Point(workRect.Left, workRect.Bottom - buttonRect.Height)
        buttonElement.Rect = buttonRect


        ' Add element to ChildElements collection so that it will be
        ' drawn when control is painted.
        Me.ChildElements.Add(Me.TextElement)
        Me.ChildElements.Add(buttonElement)

    End Sub

    Private textUIElement As TextUIElement = Nothing

    Public ReadOnly Property TextElement() As Infragistics.Win.TextUIElement

        Get
            If Me.textUIElement Is Nothing Then
                Me.textUIElement = New TextUIElement(Me, String.Empty)
            End If

            Return Me.textUIElement

        End Get

    End Property

    Private Function GetButtonElement(ByVal childElementsCollection As ArrayList) As ButtonUIElement

        ' Check ChildElements collection to see if
        ' there is a button UIElement that can be used.
        Dim btn As ButtonUIElement = ExtractExistingElement(childElementsCollection, GetType(ButtonUIElement), True)


        ' If not button will be nothing in which case we will instantiate a new one.
        If btn Is Nothing Then
            btn = New ButtonUIElement(Me)
        End If

        Return btn

    End Function

[C#] 

using System.Collections; 
using Infragistics.Win; 
 
protected override void PositionChildElements() 

 
    // Since RectInsideBorders is calculated on each get, it is  
    // best to cache the rect returned rather than make multiple  
    // calls to RectInsideBorders. 
    Rectangle workRect = this.RectInsideBorders; 
 
 
    // Store a reference to the ChildElements collection, 
    // we will be using this in our calls to ExtractExistingElement. 
    ArrayList childElements = this.ChildElements; 
 
 
    // Null out the ChildElements collection 
    this.childElementsCollection = null; 
 
 
    // We will be taking two approaches on child element creation. 
    // The complexity of both methods is rather simple, however  
    // the appropriateness of the methods is what you should consider when 
    // making your determination of which to us. And it should be noted that 
    // you should be careful if you mix and match the methods. As you cannot 
    // use them on the same type. 
 
    // The first method uses a variable of the type TextUIElement.  
    // The field is private to the class, and is created thru a get 
    // property. This is most appropriate for single instances of an element 
    // that will always be visible. 
 
    // Here we use the control property to set the  
    // TextElement's text to the Control's Text property. 
    this.TextElement.Text      = Control.Text; 
 
    Rectangle textRect          = workRect; 
    textRect.Height             -= workRect.Height / 4; 
    this.TextElement.Rect      = textRect; 
 
         
    // The second method does not use a field. Rather it checks the  
    // ChildElements collection to see if an element of that type already  
    // exists and returns it to be re-used. If it does not exist in the collection, 
    // then we create one. This approach is more appropriate for many elements that may not  
    // always be displayed. This saves memory by re-using elements, rather than  
    // creating new ones all the time. 
 
    // Create and set position of Button UIElement 
    // Notice we are not passing in ChildElements, but rather a reference to the 
    // old collection that was populated in the previous call to  
    // PositionChildElements. 
    ButtonUIElement buttonElement = GetButtonElement(childElements); 
     
    if(this.Enabled) 
        buttonElement.Text = "Click Me!"; 
    else 
        buttonElement.Text = "Disabled"; 
 
    Rectangle buttonRect = workRect; 
    buttonRect.Size = new Size (workRect.Width / 2, workRect.Height / 4); 
    buttonRect.Location = new Point(workRect.Left ,workRect.Bottom - buttonRect.Height); 
    buttonElement.Rect = buttonRect; 
     
 
    // Add element to ChildElements collection so that it will be 
    // drawn when control is painted. 
    this.ChildElements.Add(TextElement); 
    this.ChildElements.Add(buttonElement); 
 

 
private TextUIElement textUIElement = null; 
 
private TextUIElement TextElement 

 
    get 
    { 
 
        if(null == this.textUIElement) 
            this.textUIElement = new TextUIElement(this,string.Empty ); 
 
        return this.textUIElement; 
 
    } 
 

 
private ButtonUIElement GetButtonElement(ArrayList childElementsCollection) 

 
    // Check ChildElements collection to see if 
    // there is a button UIElement that can be used. 
    ButtonUIElement button = ExtractExistingElement(childElementsCollection,         typeof(Infragistics.Win.ButtonUIElement),true) as Infragistics.Win.ButtonUIElement ; 
 
    // If not button will be null in which case we will instantiate a new one. 
    if(null == button) 
        button = new ButtonUIElement(this); 
 
    return button; 
 

See Also

UIElement Class  | UIElement Members

E-mail your feedback on this topic.

Opinion about our help? Take our survey.

Copyright © 1996-2007 Infragistics, Inc. All rights reserved.

Build Version: 7.2.20072.1063