wpf - 在 VS2013 的设计时显式设置/忽略可见性?

标签 wpf visual-studio-2013

我正在为 WPF 中的复杂支持模型设计一个表单。一些表单控件依赖于在底层 View 模型上设置的多个选项,因此我已经设置了示例

<TextBlock.Visibility>
  <MultiBinding Converter="{StaticResource AndMultiValueVisibilityConverter}">
    <Binding Path="RelevantSystemOption" />
    <Binding Path="RelevantLicenseKeyOption"/>
  </MultiBinding>
</TextBlock.Visibility>

AndMultiValueVisibilityConverter 接受 bool 值,并且仅在全部为 true 时才使某些内容可见,以供引用。

这会在设计时关闭控件的可见性,这是​​我不想要的。

我知道 Expression Blend and design-time attributes 的能力做出某些在运行时可以忽略的布局决定。 d:IsHidden 不受尊重,并且 d:LayoutOverrides 不适用于 Visibility,因为它是动态属性。

我不想用 d:DataContext 虚拟整个支持模型。如果必须的话我会的,但是有没有一种更简单的方法来强制这个特定的控件以及其他一些控件在设计时始终可见?

最佳答案

只需使用

DesignerProperties.GetIsInDesignMode(new DependencyObject())

在多值转换器中确定您是否在设计器中,如果是,则返回 true。

如果您认为它可能违反该模式,则可以在 MVVM 应用程序的转换器中使用它。转换器是一个 UI 问题。

https://msdn.microsoft.com/en-us/library/system.componentmodel.designerproperties(v=vs.110).aspx

关于wpf - 在 VS2013 的设计时显式设置/忽略可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45380989/

相关文章:

c++ - TFS 版本 : projects rebuilt even if not changed

css - VS2013 不创建 min.css

window - 更改 Visual Studio 2013 和/或 Office 应用程序的窗口标题栏高度

c# - 无法将 CefSharp 添加到我的工具箱

c# - 如何正确地在 wpf 中重用矢量图

WPF/Prism 库和多个 shell

wpf - 类项目中的 ViewModel

c# - 如何在 rdlc c# 报告中使用多个数据集

javascript - TypeScript 定义文件应该包含在 _references.js 中吗?

wpf - 根据样式设置文本框文本格式