我已将TranslateZoomRotateBehavior附加到网格:
<Grid>
<!--all sorts of content-->
<Button Content="Cancel" Click="CancelButton_Click Width="25" Height="20"/>
<i:Interaction.Behaviors>
<ei:TranslateZoomRotateBehavior ConstrainToParentBounds="True" SupportedGestures="Translate"/>
</i:Interaction.Behaviors>
</Grid>
在CancelButton_Click事件处理程序中的我想重置TranslateZoomRotateBehavior以返回Grid并将其内容返回到它的原始位置。有谁知道这是否可能?
答案 0 :(得分:1)
TranslateZoomRotateBehavior
正在向其附加的元素添加MatrixTransform
。
所以修改你的例子:
<Grid Name="TestGrid">
<!--all sorts of content-->
<Button Content="Cancel" Click="CancelButton_Click Width="25" Height="20"/>
<i:Interaction.Behaviors>
<ei:TranslateZoomRotateBehavior ConstrainToParentBounds="True" SupportedGestures="Translate"/>
</i:Interaction.Behaviors>
</Grid>
然后您可以通过以下方式在代码中重置它:
TestGrid.RenderTransform = new MatrixTransform();
答案 1 :(得分:0)
如果您要为要重置行为集合的网格命名。
<Grid x:Name="grid1">
您可以使用
获取代码中的行为列表var b = System.Windows.Interactivity.Interaction.GetBehaviors(grid1)
然后您可以自由地使用它们,如果您想要将它们全部删除.Clear()如果您想重置值,但保留TranslateZoomRotateBehavior,您可以使用
访问它TranslateZoomRotateBehavior targetBehavior = (TranslateZoomRotateBehavior)b[0];
targetBehavior.ConstrainToParentBounds = true;
targetBehavior.SupportedGestures = ....