Canvas.Left和Canvas.Top的Setter在WPF中读写但在Silverlight 4中没有读取,为什么?

时间:2010-04-28 19:16:11

标签: wpf silverlight data-binding styles setter

我有以下XAML,它在WPF中工作正常,但在Silverlight 4中不能正常工作

       <ItemsPanelTemplate x:Key="ContentListBoxItemsPanelTemplate">
            <Canvas/>
        </ItemsPanelTemplate>

        <DataTemplate x:Key="ContentListBoxItemTemplate">
            <Border CornerRadius="15" Width="150" Margin="3" Height="300">
                <Border.Background>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                        <GradientStop Color="OrangeRed" Offset="1" />
                        <GradientStop Color="Brown" Offset="0" />
                    </LinearGradientBrush>
                </Border.Background>
            </Border>
        </DataTemplate>

        <Style TargetType="ListBoxItem">
            <Setter Property="Canvas.Left" Value="{Binding Left}"/>
            <Setter Property="Canvas.Top" Value="{Binding Top}"/>
        </Style>

然后在某处:

 <ListBox Name="ContentList" 
          ItemTemplate="{StaticResource ContentListBoxItemTemplate}"
          ItemsPanel="{StaticResource ContentListBoxItemsPanelTemplate}" />

如果我在Silverlight中尝试相同的操作,我会得到一个异常,说setter不能设置只读属性,但我仍然希望在没有代码的情况下在Silverlight中实现相同的功能。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)