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 に答える