[随意跳过这个]
我正在建立一个程序来处理马匹,它们的主人和主人的赛车颜色(丝绸).这个问题是关于一个名为SilksControl的UserControl,它充当了JockeySilks的视图.
为了表示丝绸,我使用以下类枚举:
public class JockeySilks { public BodyPatterns BodyPattern { get; set; } public Colour BodyColour1 { get; set; } public Colour BodyColour2 { get; set; } public SleevePatterns SleevePattern { get; set; } public Colour SleeveColour1 { get; set; } public Colour SleeveColour2 { get; set; } public CapPatterns CapPattern { get; set; } public Colour CapColour1 { get; set; } public Colour CapColour2 { get; set; } }
如您所见,骑师丝绸的每个元素都有不同的图案和颜色.每个元素的主要部分是[Item] Colour1,模式用[Item] Colour2填充.
SilksControl的基本组成是一个包含Canvas的ViewBox,而Canvas又包含许多Path.我将每个模式绘制为子画布内的路径.
Here’s a picture.在此示例中,CapPattern和BodyPattern设置为Plain,ArmPattern设置为Chevrons.
问题
我试图找出基于WPF数据绑定设置模式的最佳方法.但是,有一个问题:每个模式Path都有不同的Canvas.Top和Canvas.Left值和维度.
“最好的方式”是指简单,易读且易于实现的东西.
我想过的方法
>在代码中切换路径 – 可能类似于pthCapPattern = CapPatterns [SilksModel.CapPattern],其中CapPatterns是字典< CapPattern,Path>或者可以从资源中访问它
>但不是绑定,我必须实现一些事件和东西
>将某些控件/面板的内容绑定到SilksModel.[Item]带有转换器的模式,该转换器从资源/字典生成/拉出路径
>哪个控件?
>可能必须生成全新的路径
>有点资源密集
>拥有XAML中的所有路径并更改每个路径的可见性
>这只是尴尬和怪异
>找出一种方法来协调维度的差异然后创建1个路径并绑定到它的Path.Data属性(可能在资源中有一些StreamGeometry,使用转换器从枚举到StreamGeometry)
>我不知道如何给它们相同的尺寸,因此Canvas补偿.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。