显示项目WPF
我需要展示一个纸牌游戏板。My BoardViewModelM公开了一个IEnumerable,其中CardViewModel包含卡应在板上绘制的位置的信息。 我希望鲍尔德:显示项目WPF,wpf,wpf-controls,itemscontrol,Wpf,Wpf Controls,Itemscontrol,我需要展示一个纸牌游戏板。My BoardViewModelM公开了一个IEnumerable,其中CardViewModel包含卡应在板上绘制的位置的信息。 我希望鲍尔德: 使用所有可用尺寸绘制卡(缩放卡提供的位置和尺寸数据,保持比例) 支持缩放(包括手势缩放) 我在考虑: 创建自定义项控件(如何?)并创建自定义面板 对集合进行迭代,并为每个集合动态创建一个控件以放置在画布上(看起来有点粗糙) 我应该采取什么行动?我会使用绑定来显示您的卡片收藏-一个选项是使用带有画布的ItemsCon
- 使用所有可用尺寸绘制卡(缩放卡提供的位置和尺寸数据,保持比例)
- 支持缩放(包括手势缩放)
- 创建自定义项控件(如何?)并创建自定义面板
- 对集合进行迭代,并为每个集合动态创建一个控件以放置在画布上(看起来有点粗糙)
我应该采取什么行动?我会使用绑定来显示您的卡片收藏-一个选项是使用带有
画布的ItemsControl
作为ItemsPanel
,并设置ItemContainerStyle
来定位每张卡片。比如:
<ItemsControl ItemsSource="{Binding CardCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding CardImage}" Width="{Binding CardWidth}" Height="{Binding CardHeight}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Canvas.Left" Value="{Binding CardX}" />
<Setter Property="Canvas.Top" Value="{Binding CardY}" />
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
我会使用绑定来显示您的卡片收藏-一个选项是使用带有画布的ItemsControl
作为ItemsPanel
,并设置ItemContainerStyle
来定位每张卡片。比如:
<ItemsControl ItemsSource="{Binding CardCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding CardImage}" Width="{Binding CardWidth}" Height="{Binding CardHeight}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Canvas.Left" Value="{Binding CardX}" />
<Setter Property="Canvas.Top" Value="{Binding CardY}" />
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
谢谢,我就是这么做的,只是为了重新调整大小,我从画布上创建了一个自定义面板。是否可以指示画布自动调整内容大小,以便使用分配给它的空间显示所有内容?谢谢,我这样做了,只是为了应用重新调整大小,我创建了一个来自画布的自定义面板。是否可以指示画布自动调整内容大小,以便使用为其分配的空间显示其所有内容?