Winformsで言うことができます
if ( DesignMode )
{
// Do something that only happens on Design mode
}
wPFにはこのようなものがありますか?
場合によっては、非UIクラスへの呼び出しがデザイナーによって開始されるかどうか(XAMLからDataContextクラスを作成する場合など)を知る必要があります。次に、アプローチ このMSDN記事から が役立ちます。
// Check for design mode.
if ((bool)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue))
{
//in Design mode
}
WPFコントロールWinFormsでホストの場合、DesignerProperties.GetIsInDesignMode(this)
は機能しません。
そこで、私は Microsoft Connectのバグ を作成し、回避策を追加しました。
public static bool IsInDesignMode()
{
if ( System.Reflection.Assembly.GetExecutingAssembly().Location.Contains( "VisualStudio" ) )
{
return true;
}
return false;
}
遅い答え、私は知っています-しかし、これをDataTrigger
で、または一般的にXAMLのどこでも使用したい人のために:
xmlns:componentModel="clr-namespace:System.ComponentModel;Assembly=PresentationFramework"
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},
Path=(componentModel:DesignerProperties.IsInDesignMode)}"
Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>