0

I am using canvas within which there are several controls.

I want to allow user a facility to easily drag and drop canvas anywhere within the control. How can i move canvas with name myCanvas? Below is the xml code:

<UserControl x:Class="EMap.Windows.MainWindowNew"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" 
         xmlns:src="clr-namespace:EMap"
         d:DesignHeight="500" d:DesignWidth="1000" Background="#FF3E3E40">
 <Grid>
  <Grid.ColumnDefinitions>
  <ColumnDefinition Width="120*"/>
  <ColumnDefinition Width="121*"/>
  <ColumnDefinition Width="285*"/>
 </Grid.ColumnDefinitions>
 <Grid.RowDefinitions>
  <RowDefinition Height="49*"/>
  <RowDefinition Height="101*"/>
 </Grid.RowDefinitions>

        <Canvas Name="myCanvas" Height="800" Background="Aqua" 
        Grid.Row="0" Grid.RowSpan="2" Panel.ZIndex="1" Opacity="0.5" Canvas.Left="0" Canvas.Top="0">      

          <Label Content="Lattitude" Foreground="Black" Padding="5"/>
          <Label Content="Longitude" Foreground="Black" Padding="5" Canvas.Top="25"/>
          <Label Content="Camera Name" Foreground="Black" Padding="5" Canvas.Top="50"/>

    <Border Canvas.Left="85" Padding="2" 
            VerticalAlignment="Center"                
            BorderBrush="Green"
            BorderThickness="1">
      <TextBox x:Name="Lattitude" Background="Black" TextWrapping="Wrap" Width="119"  Foreground="White"/>
    </Border>

  <Border Canvas.Left="85" Canvas.Top="25" HorizontalAlignment="Center"
            VerticalAlignment="Center"
            Padding="1"
            BorderBrush="Green"
            BorderThickness="1">
            <TextBox Name="Longitude" Background="Black" TextWrapping="Wrap" Width="119"  Foreground="White"/>
          </Border>
          <Border Canvas.Left="85" Canvas.Top="50" HorizontalAlignment="Center"
            VerticalAlignment="Center"
            Padding="1"
            BorderBrush="Green"
            BorderThickness="1">
            <TextBox Name="camName" Background="Black" TextWrapping="Wrap" Width="119"  Foreground="White"/>
          </Border>

          <Button Name="PlaceCamera" Content="Place Camera"  Foreground="Black" 
          HorizontalAlignment="Center" VerticalAlignment="Bottom" Background="Transparent" 
          Canvas.Left="110" Canvas.Top="75" Click="PlaceCamera_Click"/>
          <Button Name="RemoveCamera" Content="Remove Camera"  Foreground="Black" 
          HorizontalAlignment="Center" VerticalAlignment="Bottom" Background="Transparent" 
          Canvas.Left="110" Canvas.Top="100" Click="RemoveCamera_Click"/>
          <Button Name="GetAllCamera" Content="Get all Cameras"  Foreground="Black" 
          HorizontalAlignment="Center" VerticalAlignment="Bottom" Background="Transparent" 
          Canvas.Left="110" Canvas.Top="125" Click="GetAllCamera_Click"/>              
        </Canvas>


  <GroupBox Name="mapgroup" Panel.ZIndex="0" Background="Teal" 
          Grid.Row="0" Grid.RowSpan="2" Grid.ColumnSpan="3" 
          VerticalContentAlignment="Stretch" 
          HorizontalContentAlignment="Stretch">
    <src:Map x:Name="MainMap" CanDragMap="False" Zoom="13" MaxZoom="24" MinZoom="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
  </GroupBox>

  • you would need to place your `myCanvas` in another `Canvas` and handle `MouseDown`, `MouseMove` and `MouseUp` for them – slawekwin Sep 06 '16 at 12:06
  • What have you tried already? Are you trying to move the Canvas itself around to anywhere, or just between Grid cells, or something else? – Matthew Walton Sep 06 '16 at 12:07
  • @MatthewWalton move anywhere within the controls –  Sep 06 '16 at 12:08
  • I want to move the canvas just like we move any control in the designer side of xaml window –  Sep 06 '16 at 12:10
  • @slawekwin , can you please explain with a bit of code. –  Sep 06 '16 at 12:12
  • check [this one](http://stackoverflow.com/a/2833809/872363) out for example – slawekwin Sep 06 '16 at 12:20
  • Possible duplicate of [Making a moveable control in WPF](http://stackoverflow.com/questions/2831040/making-a-moveable-control-in-wpf) – slawekwin Sep 06 '16 at 12:21

0 Answers0