我正在为 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/