Mega Code Archive

 
Categories / VB.Net Tutorial / WPF
 

Determine the layout position of an element using the LayoutInformation

<Window  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     x:Class="layout_information.Window1"     Title="LayoutInformation Sample">     <Border Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top">       <Grid Name="myGrid" Height="150">         <Grid.ColumnDefinitions>           <ColumnDefinition Width="250"/>         </Grid.ColumnDefinitions>         <Grid.RowDefinitions>           <RowDefinition />         </Grid.RowDefinitions>         <TextBlock Name="txt1" Margin="5" Grid.Column="0" Grid.Row="0">Hello World!</TextBlock>         <Button Click="ShowLayoutSlot" Width="125" Height="25" Grid.Column="0" Grid.Row="1">Show Bounding Box</Button>       </Grid>   </Border>   </Window> //File:Window.xaml.vb Imports System Imports System.Windows Imports System.Windows.Media Imports System.Windows.Shapes Imports System.Windows.Controls Imports System.Windows.Controls.Primitives Namespace layout_information   Public Partial Class Window1     Inherits Window     Public Sub ShowLayoutSlot(sender As Object, e As System.Windows.RoutedEventArgs)       Dim myRectangleGeometry As New RectangleGeometry()       myRectangleGeometry.Rect = LayoutInformation.GetLayoutSlot(txt1)       Dim myGeometryDrawing As New GeometryDrawing()       Dim myPath As New Path()       myPath.Data = myRectangleGeometry       myPath.Stroke = Brushes.LightGoldenrodYellow       myPath.StrokeThickness = 1       Grid.SetColumn(myPath, 0)       Grid.SetRow(myPath, 0)       myGrid.Children.Add(myPath)       Console.WriteLine(LayoutInformation.GetLayoutSlot(txt1).ToString())     End Sub   End Class End Namespace