【问题标题】:Setting the visual state of a control during design time在设计时设置控件的视觉状态
【发布时间】:2012-01-07 18:30:49
【问题描述】:

有没有办法在 Miscrosoft Blend 的设计期间设置控件的视觉状态?

(例如将 TextBox 的状态设置为“已禁用”,以便可以在设计图面上看到已禁用的 TextBox)

提前致谢:)

【问题讨论】:

    标签: c# silverlight blend visualstatemanager visualstates


    【解决方案1】:

    我通常使用 MVVM 将我希望控制的状态绑定到我的 ViewModel 中的属性。 我使用 MVVMLight 作为我的 MVVM 框架,在那里你有一个“IsInDesignMode”属性,你可以再次检查它,并设置你想要的设计时属性。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      右键单击您的文本框并选择“编辑模板”->“编辑副本”并将模板拆分为资源字典或您喜欢的任何位置,通常一个新的资源字典是一个好地方。这会将您带到该控件的模板,然后单击“状态”选项卡(通常在混合中的左上角),它将显示控件的各种状态,包括禁用并公开创建控件的对象。

      所有这些内容当然也可以在您的 VisualStateManager 代码中找到,但是查看模板中的状态是最简单的方法,您可以在单击它们时对状态进行可视化解释。当您单击状态时,请注意出现在对象和时间线面板中的对象上的小红点,以查看每个状态正在与哪些元素进行交互。使事情变得容易得多。希望这会有所帮助,如果没有进一步定义,我们会让你正确设置。干杯马克。 :)

      【讨论】:

      • 哦,是的,如果您只是想查看禁用状态在启动时的样子,而不会遇到麻烦,只需将 IsEnabled="False" 添加到 xaml....我会补充的。
      • Hey Chris :) 看来您这次是我的个人回答代理 :) 关于问题:我已经在其控件模板中定义了控件的视觉状态(使用 VSM)。一切都很好——我可以建立尽可能多的状态。但是当我离开 VSM 返回到我的普通设计表面时,我只会看到我的控件处于它们的“基本”状态(而不是它们的“正常”状态)。现在我真正想要的是在 Blend 的标准设计界面中看到它们处于“禁用”状态。你现在明白我的意思了吗?如果不是,我将再次重新制定;)这么久,...
      • 另一种表述我的问题的方法是:如何为控件设置初始状态,在启动时加载控件?
      • 好吧,如果你只是想让它们在加载时处于禁用状态,就像
      最近更新 更多