微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 将显示的模式(路径)绑定到数据模型/如何使路径具有相同的尺寸

背景

[随意跳过这个]

我正在建立一个程序来处理马匹,它们的主人和主人的赛车颜色(丝绸).这个问题是关于一个名为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] 举报,一经查实,本站将立刻删除。

相关推荐