在XAML中检测网格
我有两个XAML网格。一小一大。我怎么能在第一次移动之后,在第二次移动之后发现它呢?我需要类似smth的坐标(需要将第一个网格与第二个网格的边界对齐,或者与此“大网格”中的其他网格对齐)。什么是方法、属性在XAML中检测网格,xaml,windows-8,Xaml,Windows 8,我有两个XAML网格。一小一大。我怎么能在第一次移动之后,在第二次移动之后发现它呢?我需要类似smth的坐标(需要将第一个网格与第二个网格的边界对齐,或者与此“大网格”中的其他网格对齐)。什么是方法、属性 <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> <Grid HorizontalAlignment="Center" VerticalAlignment="Center"
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<Grid HorizontalAlignment="Center" VerticalAlignment="Center" x:Name="Parent" Margin="124,340,1042,228">
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="100"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" ManipulationDelta="Object_ManipulationDelta" x:Name="Figure" ManipulationMode="All">
<Rectangle Fill="Red" Width="40" Height="40"/>
<Rectangle Fill="Red" Width="40" Height="40" Margin="-10,30,70,30"/>
<Rectangle Fill="Red" Width="40" Height="40" Margin="-10,70,70,-10"/>
<Rectangle Fill="Red" Width="40" Height="40" Margin="-50,70,110,-10"/>
<Grid.RenderTransform>
<CompositeTransform/>
</Grid.RenderTransform>
</Grid>
</Grid>
<Grid x:Name="Field" Width="500" Height="700">
<Rectangle Fill="Black" Width="40" Height="40" Margin="10,10,450,650" StrokeThickness="1" Stroke="#FF1B1B1B"/>
<Rectangle Fill="Black" Width="40" Height="40" Margin="50,10,410,650" StrokeThickness="1" Stroke="#FF1B1B1B"/>
<Rectangle Fill="Black" Width="40" Height="40" Margin="90,10,370,650" StrokeThickness="1" Stroke="#FF1B1B1B"/>
<!--many rectangles-->
</Grid>
</Grid>
我将栅格图形移动到栅格字段。将来,我可能会将矩形更改为边框。要检测图形和字段之间的相对位置,可以使用以下方法:
var transform= Field.TransformToVisual(Figure);
Point relativePosition = transform.TransformPoint(new Point(0,0));
相对坐标将是字段左上角和图形左上角之间的距离
如果需要栅格的绝对坐标,可以执行以下操作:
var transform= this.TransformToVisual(Figure);
Point absolutePositionFigureGrid = transform.TransformPoint(new Point(0,0));
你能发布你的XAML吗?@BolucPapuccuoglu是的,我发布了。请原谅我,但如果我旋转图形(当我旋转时,我会改变它的中心X/Y),它在我将其返回到原始位置之前不会工作。也许你能再帮我一次?