电影院、体育场或礼堂的 Wpf 自定义控件
Wpf custom control for cinema, stadium or hall
我要在 wpf 控件中创建一个尽可能接近这个的任务
from the link (please click "Select Tickets" tab to see a control)
我想请教一下从哪里开始?
我应该使用 canvas 吗?如果不是canvas,如何使用缩放?
这个问题有很多答案。乍一看,我会尝试按照以下步骤操作:
- 为点创建一个控件 -> 一个圆圈 (
Path
),它的颜色具有依赖性 属性。
- 创建一个包含所需列数和行数的动态
Grid
,并在每个单元格中插入您在第一步中创建的具有正确填充颜色的控件。
- 缩放应通过调整动态中的列数和行数来实现grid.If减少列数,自定义控件将被拉伸并显示为缩放区域。
- 请记住,您必须使用 ObservableCollections 和 TwoWay Bindings 才能获取 UI 上的更新。
希望对您有所帮助!祝你好运
您可以使用 ViewBox 使控件的大小适应可用 space。
@Dragosh 的回答是一个不错的选择。但通常有不是网格的座位布局。我建议创建一个自定义 ItemsControl,它绑定到 'Seats' 的集合,这些集合具有概述其部分、行等和位置的属性。这样您就可以创建一个 DataTemplate 和 ItemStyle,将座位控件放置在正确的位置。
我要在 wpf 控件中创建一个尽可能接近这个的任务 from the link (please click "Select Tickets" tab to see a control)
我想请教一下从哪里开始? 我应该使用 canvas 吗?如果不是canvas,如何使用缩放?
这个问题有很多答案。乍一看,我会尝试按照以下步骤操作:
- 为点创建一个控件 -> 一个圆圈 (
Path
),它的颜色具有依赖性 属性。 - 创建一个包含所需列数和行数的动态
Grid
,并在每个单元格中插入您在第一步中创建的具有正确填充颜色的控件。 - 缩放应通过调整动态中的列数和行数来实现grid.If减少列数,自定义控件将被拉伸并显示为缩放区域。
- 请记住,您必须使用 ObservableCollections 和 TwoWay Bindings 才能获取 UI 上的更新。
希望对您有所帮助!祝你好运
您可以使用 ViewBox 使控件的大小适应可用 space。
@Dragosh 的回答是一个不错的选择。但通常有不是网格的座位布局。我建议创建一个自定义 ItemsControl,它绑定到 'Seats' 的集合,这些集合具有概述其部分、行等和位置的属性。这样您就可以创建一个 DataTemplate 和 ItemStyle,将座位控件放置在正确的位置。