【问题标题】:Accessing a RenderTransform in a DataTemplate in Silverlight在 Silverlight 的 DataTemplate 中访问 RenderTransform
【发布时间】:2009-10-21 00:06:37
【问题描述】:

我有一堆带有 DataTemplate 的 ContentControl,如下所示:

    <DataTemplate>         
        <Canvas>
            <Canvas.RenderTransform>
                <TransformGroup>
                    <ScaleTransform ScaleX="1.0" ScaleY="1.0"/>
                </TransformGroup>
            </Canvas.RenderTransform>
        </Canvas>
    </DataTemplate>

...我想动态改变它们的比例。我是 .NET 的新手,所以请原谅。我尝试使用这种技术:

http://msdn.microsoft.com/en-us/library/bb613579.aspx

...但 DataTemplate 在 Silverlight 中似乎没有 FindName。然后我尝试像这样绑定天平:

<ScaleTransform ScaleX="{Binding Scale}" ScaleY="{Binding Scale}"/>

...但是当我运行时出现 XAML 错误。

我是不是找错树了?我认为这一定是可能的。

谢谢。

【问题讨论】:

  • 您是想让它们都缩放到相同的值还是需要单独缩放?

标签: silverlight datatemplate


【解决方案1】:

假设您不想为比例设置动画,只需在视图模型中包含一个 Scale 属性。您不能从 DataTemplate 内部访问祖先 DataContext(但是 WPF 支持这一点)。

不要将 DataTemplate 的 DataContext 设置为实体,而是创建一个包含 (INotifyPropertyChanged-firing) Scale 属性的包装类 (ViewModel)。现在您的 ContentControl 可以绑定到您的视图模型的 Scale 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 2010-10-04
    • 2011-01-26
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    相关资源
    最近更新 更多