gpt4 book ai didi

wpf - 我应该使用 Expression Blend 来设计真正动态的 UI 吗?

转载 作者:行者123 更新时间:2023-12-04 19:39:28 26 4
gpt4 key购买 nike

我公司的产品的核心是一个用于开发元数据驱动的 UI 的框架。我不知道如何更简洁地描述它,希望我不需要为了这个问题的目的,但我们会看到。

我一直在尝试加快 WPF 的速度,并一直在各处构建 UI 原型(prototype),最近我决定看看是否可以使用 Expression Blend 来帮助设计这些 UI。在这一点上我很困惑。

在我看来,Expresssion Blend 的设计似乎期望您在设计时就已经知道 UI 中将出现的所有对象。但是我们的程序在运行时动态生成这些对象。

例如,数据行可能显示在水平 StackPanel 中,其中包含交替的 TextBlock(用于标题)和 TextBox(用于数据字段)。这些对象的数量取决于有关数据行中列数的元数据。我可以很容易地编写代码,通过元数据记录运行并动态填充 StackPanel,设置所有控件到数据或元数据中属性的绑定(bind)。 (TextBox 的 Width 可能绑定(bind)到元数据,而其 Text 绑定(bind)到数据。)

但我什至不知道如何在 Expression Blend 中做这样的事情。我可以手动创建所有这些控件,这样我就有了一组控件,我可以将样式应用于这些控件并制定出应用程序的视觉设计,但是这样做真的很痛苦。

我想我可以编写通过我的数据模型并为所有这些控件发出 XAML 的代码,然后复制并粘贴它。但是,如果在 Expression Blend 中有一种方法可以做这种事情,我会感到非常愚蠢,我已经退缩并下注了,因为我太笨了,无法找出正确的思考方式。

这些信息是否足以让某人尝试制定答案?

最佳答案

我认为 expression blend 是一个非常好的选择,特别是如果您想设计动态的、数据驱动的 UI。您可以使用 Blend 来设计定义单个数据对象如何呈现在屏幕上的数据模板。例如,如果您有一个 Person 类型的对象,您可以定义文本框、边框等控件,然后为列表中的每个 Person 自动生成这些控件。然后,您可以使用这些动态数据对象填充 ItemsControls(DataGrid、ListView、TreeView ...),WPF 知道如何呈现它们。如果从列表中删除了一个 Persopn,则生成的视觉项目也将被删除。这只是一个简单的示例,动态数据的整个概念已深深融入 WPF 中,您可以使用 blend 访问这些功能。

为了能够在 expression blend 中设计数据模板,您需要 provide sample designtime data .

如果您坚持使用 MVVM,那么要使所有这些都有效,这将是一个很大的优势。设计。

关于wpf - 我应该使用 Expression Blend 来设计真正动态的 UI 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1706560/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com