Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public partial class MainWindow : Window
- {
- public MainWindow()
- {
- InitializeComponent();
- }
- private bool isDragging;
- private void usercontrol_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
- {
- bre.CaptureMouse();
- isDragging = true;
- }
- private void usercontrol_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
- {
- if (isDragging)
- {
- Point canvPosToWindow = canv.TransformToAncestor(this).Transform(new Point(0, 0));
- UserControl1 r = sender as UserControl1;
- var upperlimit = canvPosToWindow.Y + (r.Height / 2);
- var lowerlimit = canvPosToWindow.Y + canv.ActualHeight - (r.Height / 2);
- var leftlimit = canvPosToWindow.X + (r.Width / 2);
- var rightlimit = canvPosToWindow.X + canv.ActualWidth - (r.Width / 2);
- var absmouseXpos = e.GetPosition(this).X;
- var absmouseYpos = e.GetPosition(this).Y;
- if ((absmouseXpos > leftlimit && absmouseXpos < rightlimit)
- && (absmouseYpos > upperlimit && absmouseYpos < lowerlimit))
- {
- r.SetValue(Canvas.LeftProperty, e.GetPosition(canv).X - (r.Width / 2));
- r.SetValue(Canvas.TopProperty, e.GetPosition(canv).Y - (r.Height / 2));
- }
- }
- }
- private void usercontrol_MouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
- {
- bre.ReleaseMouseCapture();
- isDragging = false;
- }
- }
- <Window x:Class="WpfApplication6.MainWindow"
- 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"
- xmlns:local="clr-namespace:WpfApplication6"
- mc:Ignorable="d"
- Title="MainWindow" Height="350" Width="525">
- <Grid>
- <Canvas x:Name="canv" Background="#FF131315" Margin="104,27,103,10">
- <local:UserControl1 x:Name="bre" Canvas.Left="81" Canvas.Top="31" Width="166" />
- </Canvas>
- <UserControl x:Class="WpfApplication6.UserControl1"
- 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"
- xmlns:local="clr-namespace:WpfApplication6"
- mc:Ignorable="d"
- d:DesignHeight="300" d:DesignWidth="300">
- <Grid Name="bre">
- <Ellipse x:Name="circleUI" Height="100" Width="100"
- Fill="Blue" />
- </Grid>
- </UserControl>
- {
- public UserControl1()
- {
- InitializeComponent();
- }
- public UserControl1(UserControl1 c)
- {
- InitializeComponent();
- this.circleUI.Height = c.circleUI.Height;
- this.circleUI.Width = c.circleUI.Height;
- this.circleUI.Fill = c.circleUI.Fill;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement