Hi,
I would like to find out, how a RichTextBox can be moved by mouse. I have written some code for it, but it does not work well. The RTB does only move, when the mouse hits its border. The mouse is not really captured, too. It releases the RTB whenever it is moving outside RTB´s area.
Here´s the code:
XAML:
VB:Code:<Window x:Class="Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300"> <Grid> <Canvas Margin="1" Name="Canvas1"> <RichTextBox Canvas.Left="45" Canvas.Top="55" Height="100" Name="RichTextBox1" Width="200" /> </Canvas> </Grid> </Window>
Code:Class Window1 Private mMouseDownPosition As Point Private Sub RichTextBox1_PreviewMouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles RichTextBox1.PreviewMouseDown RichTextBox1.CaptureMouse() mMouseDownPosition = e.GetPosition(Canvas1) Beep() End Sub Private Sub RichTextBox1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseEventArgs) Handles RichTextBox1.MouseMove Dim x As Point = e.GetPosition(Canvas1) If (e.LeftButton = MouseButtonState.Pressed) Then Canvas.SetLeft(RichTextBox1, Canvas.GetLeft(RichTextBox1) + (x.X - mMouseDownPosition.X)) Canvas.SetTop(RichTextBox1, Canvas.GetTop(RichTextBox1) + (x.Y - mMouseDownPosition.Y)) End If mMouseDownPosition = x End Sub Private Sub RichTextBox1_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles RichTextBox1.MouseUp RichTextBox1.ReleaseMouseCapture() End Sub End Class
Greetings,
TheTree




Reply With Quote