【发布时间】:2011-06-13 20:34:12
【问题描述】:
我正在尝试创建一个画布,项目位于画布上的指定位置,因为我无法将源和模板直接绑定到画布,我是否使用了 ItemsControl。 但是有一个问题,所有项目都位于 0,0。我已经测试了它们不返回 0,0 的绑定。 我怎样才能完成这项工作,以便将物品放置在正确的位置?
是否也可以在画布上创建 2 个图层,其中每个图层绑定到不同的源并使用不同的模板?
这是在 Silverlight 中
<ItemsControl Grid.Row="1" Grid.Column="1"
Width="650" Height="650"
ItemsSource="{Binding Skills}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Margin="0"
Width="650" Height="650" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Canvas.Top="{Binding Top}" Canvas.Left="{Binding Left}">
<TextBlock Text="{Binding Name}" />
<Image Source="{Binding Icon}" />
<StackPanel Orientation="Horizontal" >
<TextBlock FontWeight="Bold" TextAlignment="Center" Text="{Binding SkillPointsStatusText}" />
</StackPanel>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
使用 ItemContainerStyle 进行测试
<ItemsControl Grid.Row="1" Grid.Column="1"
Width="650" Height="650"
ItemsSource="{Binding Skills}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Margin="0"
Width="650" Height="650" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" />
<Image Source="{Binding Icon}" />
<TextBlock FontWeight="Bold" TextAlignment="Center" Text="{Binding SkillPointsStatusText}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Canvas.Top" Value="{Binding Top}" />
<Setter Property="Canvas.Left" Value="{Binding Left}" />
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
好吧,我已经放弃了这个项目,但是如果有人有答案,我会留下这个问题
【问题讨论】:
-
我加了一个赏金,因为当你用我的非工作答案问这个问题时,我几乎扼杀了这个问题,对此感到抱歉。希望这会给它应有的关注。
-
你能贴出你想绑定的类的代码吗?
标签: wpf silverlight xaml data-binding