Ich bitte dich diese Lösung nicht einfach zu übernehmen, sondern darüber nachzudenken was Passiert hier.
XAML:
<Window x:Class="Window3"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window3" Height="300" Width="300">
<!--Top Grid-->
<Grid Height="45" VerticalAlignment="Top">
<Grid Height="612" Margin="0,0,0,-610" Name="Grid1" _
VerticalAlignment="Bottom">
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="Grid1Column1" Width="139"/>
<ColumnDefinition x:Name="Grid1Column2" Width="139"/>
</Grid.ColumnDefinitions>
<Label Background="Yellow" Grid.Column="0"/>
<GridSplitter Grid.Column="0" Width="10" />
<Label Background="Green" Grid.Column="1"/>
<Grid Name="Grid2" Background="Black" Grid.Column="1" >
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid> <!--Neus Grid in der rechten Spalte-->
<Grid.RowDefinitions>
<RowDefinition x:Name="Grid2Row1" Height="306*" />
<RowDefinition x:Name="Grid2Row2" Height="306*" />
</Grid.RowDefinitions>
<Label Background="Aqua" Grid.RowSpan="1" />
<Label Background="Red" Grid.Row="1" Grid.RowSpan="1" />
<GridSplitter Height="10" HorizontalAlignment="Stretch" _
Background="Beige" VerticalAlignment="Bottom" />
</Grid><!--Ende Neus Grid in der rechten Spalte-->
<!--Beweglicher Knoten Punkt-->
<Ellipse Width="30" Height="30" Fill="GreenYellow" Grid.Row="0" _
Grid.Column="0" Grid.ColumnSpan="1" Grid.RowSpan="1"
VerticalAlignment="Bottom" HorizontalAlignment="Left" _
Margin="-21,0,0,294" x:Name="MyKnoten" />
<!--Ende Beweglicher Knoten Punkt-->
</Grid>
</Grid>
</Grid>
</Window> VB:
Private _altPoint As Point
Private _divHori As Double
Private _divVerti As Double
Private Sub MyKnoten_PreviewMouseMove(ByVal sender As Object, ByVal e As _
System.Windows.Input.MouseEventArgs) Handles MyKnoten.PreviewMouseMove
'Abfragen ob Mousetase gedrückt
If e.LeftButton Then
Dim actPoint As Point = e.GetPosition(Grid1)
_divHori = _altPoint.X - actPoint.X
_divVerti = _altPoint.Y - actPoint.Y
Console.WriteLine(_divHori & " , " & _divVerti)
' Grid berechnen
Grid1Column1.Width = New GridLength(Grid1Column1.Width.Value - _
_divHori, GridUnitType.Pixel)
Grid1Column2.Width = New GridLength(Grid1Column2.Width.Value + _
_divHori, GridUnitType.Pixel)
Grid2Row1.Height = New GridLength(Grid2Row1.Height.Value - _
_divVerti, GridUnitType.Pixel)
Grid2Row2.Height = New GridLength(Grid2Row2.Height.Value + _
_divVerti, GridUnitType.Pixel)
'MyKnoten noch Vertikal verschieben!
' Da der Knoten links an das Grid gebunden ist verschiebt er sich
' Automatisch mit dem ändern der GridLength.
' Bei der Vertikalen Verschiebung muss die Margin Eigenschaft von
' MyKnoten angepasst werden.
Dim MyKnotenMargin As Thickness = MyKnoten.Margin
MyKnotenMargin.Bottom += _divVerti
MyKnoten.Margin = MyKnotenMargin
End If
_altPoint = e.GetPosition(Grid1)
End Sub
__________________________________________________________________________
Ein Programmierer ist eine Maschine die Koffein in Programmcode umwandelt!
Und Bier in Bug?s
May the source code be with you. |