请帮帮我。我有这个:
<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="50"/>
</Grid.ColumnDefinitions>
<Rectangle x:Name="MyObject" Fill="Red" ManipulationDelta="Object_ManipulationDelta" Height="80" Width="80" ManipulationMode="All">
<Rectangle.RenderTransform>
<CompositeTransform/>
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Fill="Blue" Grid.Row="1">
<Rectangle.RenderTransform>
<CompositeTransform/>
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Fill="Green" Grid.Column="1"/>
<Rectangle Fill="Yellow" Grid.Row="1" Grid.Column="1"/>
</Grid>
我有函数Object_ManipulationDelta
,如果它被拖动,它会改变元素的位置。
Object_ManipulationDelta
来改变整个组的位置(如果其中一个被拖动)?在函数中,我使用:var obj = (CompositeTransform)MyObject.RenderTransform
和TranslateX
(和Y)作为对象。<Rectangle.RenderTransform...
?答案 0 :(得分:1)
使用x:Name =“name”命名您在代码示例中提到的整个网格,并在此网格上应用转换。或者仅对嵌套网格中的目标矩形进行分组,并对其应用转换。
答案 1 :(得分:0)
Grid等任何Panel都可以进行分组工作。 Grid也有ManipulationDelta事件。 为避免重复复合变换,请将其移动到包含矩形的网格。