Mega Code Archive

 
Categories / Silverlight / Containers
 

Get position on a Canvas with Canvas GetLeft

<UserControl x:Class='SilverlightApplication3.MainPage'     xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'      xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'     xmlns:d='http://schemas.microsoft.com/expression/blend/2008'      xmlns:mc='http://schemas.openxmlformats.org/markup-compatibility/2006'      mc:Ignorable='d'      d:DesignWidth='640'      d:DesignHeight='480'>   <Canvas Width="100" Height="100" Name="myCanvasStretch">     <TextBox Name="changes"           Width="{Binding ElementName=myCanvasStretch,Path=Width}"            Height="{Binding ElementName=myCanvasStretch,Path=Height}"           Text="Size: 100, 100"/>     <Thumb Name="myThumb" Canvas.Left="80" Canvas.Top="80" Background="Blue"            Width="20" Height="20" DragDelta="onDragDelta"/>   </Canvas> </UserControl> //File:Window.xaml.cs using System; using System.Windows; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Documents; using System.Windows.Shapes; using System.Windows.Data; using System.Windows.Media; namespace SilverlightApplication3 {   public partial class MainPage : UserControl   {         void onDragDelta(object sender, DragDeltaEventArgs e)         {             double yadjust = myCanvasStretch.Height + e.VerticalChange;             double xadjust = myCanvasStretch.Width + e.HorizontalChange;             if ((xadjust >= 0) && (yadjust >= 0))             {                 myCanvasStretch.Width = xadjust;                 myCanvasStretch.Height = yadjust;                 Canvas.SetLeft(myThumb, Canvas.GetLeft(myThumb) + e.HorizontalChange);                 Canvas.SetTop(myThumb, Canvas.GetTop(myThumb) + e.VerticalChange);                 Console.WriteLine(myCanvasStretch.Width);                 Console.WriteLine(myCanvasStretch.Height);             }         }     } }