Click to Rate and Give Feedback
MSDN
MSDN Library
.NET Development
.NET Framework 3.5
Canvas Class
Canvas Methods
 SetLeft Method

  Switch on low bandwidth view
This page is specific to
Microsoft Visual Studio 2008/.NET Framework 3.5

Other versions are also available for the following:
.NET Framework Class Library
Canvas..::.SetLeft Method

Sets the value of the Canvas..::.Left attached property for a given dependency object.

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (in PresentationFramework.dll)
Visual Basic (Declaration)
Public Shared Sub SetLeft ( _
    element As UIElement, _
    length As Double _
)
Visual Basic (Usage)
Dim element As UIElement
Dim length As Double

Canvas.SetLeft(element, length)
C#
public static void SetLeft(
    UIElement element,
    double length
)
Visual C++
public:
static void SetLeft(
    UIElement^ element, 
    double length
)
JScript
public static function SetLeft(
    element : UIElement, 
    length : double
)
XAML
You cannot use methods in XAML.

Parameters

element
Type: System.Windows..::.UIElement
The element to which the property value is written.
length
Type: System..::.Double
Sets the Canvas..::.Left coordinate of the specified element.

This example shows how to use the positioning methods of the Canvas element to position child content. This example uses content in a ListBoxItem to represent positioning values and converts the values into instances of Double, which is a required argument for positioning. The values are then converted back into strings and displayed as text in a TextBlock element by using the GetLeft method.

The following example creates a ListBox element that has eleven selectable ListBoxItem elements. The SelectionChanged event triggers the ChangeLeft custom method, which the subsequent code block defines.

Each ListBoxItem represents a Double value, which is one of the arguments that the SetLeft method of Canvas accepts. In order to use a ListBoxItem to represent an instance of Double, you must first convert the ListBoxItem to the correct data type.

<ListBox Grid.Column="1" Grid.Row="1" VerticalAlignment="Top" Width="60" Margin="10,0,0,0" SelectionChanged="ChangeLeft">
  <ListBoxItem>Auto</ListBoxItem>      
  <ListBoxItem>10</ListBoxItem>
  <ListBoxItem>20</ListBoxItem>
  <ListBoxItem>30</ListBoxItem>
  <ListBoxItem>40</ListBoxItem>
  <ListBoxItem>50</ListBoxItem>
  <ListBoxItem>60</ListBoxItem>
  <ListBoxItem>70</ListBoxItem>
  <ListBoxItem>80</ListBoxItem>
  <ListBoxItem>90</ListBoxItem>
  <ListBoxItem>100</ListBoxItem>      
</ListBox>

<ListBox Grid.Column="1" Grid.Row="1" VerticalAlignment="Top" Width="60" Margin="10,0,0,0" SelectionChanged="ChangeLeft">
  <ListBoxItem>Auto</ListBoxItem>      
  <ListBoxItem>10</ListBoxItem>
  <ListBoxItem>20</ListBoxItem>
  <ListBoxItem>30</ListBoxItem>
  <ListBoxItem>40</ListBoxItem>
  <ListBoxItem>50</ListBoxItem>
  <ListBoxItem>60</ListBoxItem>
  <ListBoxItem>70</ListBoxItem>
  <ListBoxItem>80</ListBoxItem>
  <ListBoxItem>90</ListBoxItem>
  <ListBoxItem>100</ListBoxItem>      
</ListBox>

When a user changes the ListBox selection, it invokes the ChangeLeft custom method. This method passes the ListBoxItem to a LengthConverter object, which converts the Content of a ListBoxItem to an instance of Double (notice that this value has already been converted to a String by using the ToString method). This value is then passed back to the SetLeft and GetLeft methods of Canvas in order to change the position of the text1 object.

Visual Basic
Private Sub ChangeLeft(ByVal sender As Object, ByVal e As SelectionChangedEventArgs)
    Dim li As ListBoxItem = CType(CType(sender, ListBox).SelectedItem, ListBoxItem)
    Dim myLengthConverter As New LengthConverter
    Dim db1 As Double = CType(myLengthConverter.ConvertFromString(li.Content.ToString()), Double)
    Canvas.SetLeft(text1, db1)
    Dim st1 As String = CType(myLengthConverter.ConvertToString(Canvas.GetLeft(text1)), String)
    canvasLeft.Text = "Canvas.Left = " + st1
End Sub

C#
        private void ChangeLeft(object sender, SelectionChangedEventArgs args)
        {
            ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
            LengthConverter myLengthConverter = new LengthConverter();
            Double db1 = (Double)myLengthConverter.ConvertFromString(li.Content.ToString());
            Canvas.SetLeft(text1, db1);
            String st1 = (String)myLengthConverter.ConvertToString(Canvas.GetLeft(text1));
            canvasLeft.Text = "Canvas.Left = " + st1;
        }

For the complete sample, see Canvas Positioning Properties Sample.

More Code

How to: Create and Use a Canvas This example shows how to create and use an instance of Canvas.

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker