0

我有一个 silverlight 应用程序,其中有一个数据模板,如下所示

<DataTemplate x:Name="Template">
<StackPanel>
    <TextBlock Text="{Binding txtCap}"/>
    <Grid>
       <Grid.RenderTransform>
           <CompositeTransform/>
           <TranslateTransform x:Name="gridTransform" X="0" Y="0"/>
       </Grid.RenderTransform>
        <ContentControl Content="{Binding txtContent}"/>
    <Grid>
<StackPanel>
</DataTemplate>

data template是 的模板,items control并且项目控件本身绑定到ObservableCollection

在代码中,我实际上能够获得我正在拖动的任何网格(例如:sender as Grid在鼠标按下事件中)但我想问一下当我拥有这个控件时如何实际应用转换?例如:我在鼠标事件中有这个:var targetLB = sender as ContentControl;
但是如何在运行时将转换转换应用于该元素?

如果这不在数据模板中,我将直接访问 TranslateTransform 的名称并执行类似的操作this.gridTransform.X = ...

4

1 回答 1

0

您也可以绑定 Transform 的属性。

编辑:

在代码中,我实际上能够获取我正在拖动的任何网格(例如:鼠标按下事件中的发送者作为网格)

如果你有网格,你可以像这样得到 TranslateTransform 对象:

        var transform = ((sender as Grid).RenderTransform as TransformGroup).Children[1] as TranslateTransform;
        transform.X = ...
        transform.Y = ...
于 2012-08-14T10:12:19.167 回答