重置TranslateZoomRotateBehavior? (WPF / Blend行为)

时间:2010-09-14 08:44:51

标签: wpf expression-blend behavior

我已将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并将其内容返回到它的原始位置。有谁知道这是否可能?

2 个答案:

答案 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 = ....