次の方法で共有


方法 : カスタム コントロールがデザイン時のものか実行時のものかを判断する

機能拡張を使用して WPF Designer for Visual Studio をカスタマイズするとき、デザイン時または実行時のコントロールの動作をカスタマイズした方が適切な場合があります。 エンド ユーザーのデザイン時の操作はカスタマイズできます。 たとえば、カスタム ボタンを作成する場合、デザイン時にはボタンにテキストを表示し、実行時には表示しないように設定できます。また、複雑な動作を行うコントロールを、実行時にのみ動作が行われるようにカスタマイズすることもできます。 自動的にデータベースにアクセスするコントロールが、デザイン時ではなく、実行時にデータベースにアクセスするようにすることもできます。

GetIsInDesignMode メソッドを呼び出すことにより、コントロールがデザイン時に実行しているのか、または実行時に実行しているのかを判断できます。

デザイン モード プロパティの使用

この手順では、実行時ではなく、デザイン時に、カスタム ボタン コントロールにテキストを表示します。

デザイン モード プロパティを使用するには

  1. カスタム コントロールの分離コード ファイル内で、カスタム コントロールのコンストラクターを検索します。

  2. GetIsInDesignMode メソッドを呼び出すコードを追加し、それに従ってコントロールの動作をカスタマイズします。 カスタム コントロールへの参照を GetIsInDesignMode への引数として渡し、これが、コントロールがデザイン モードにあるかどうかを判断します。 たとえば、次のようなコードを追加します。

    Namespace CustomControlLibrary
    
        Public Class ButtonWithDesignTime
            Inherits System.Windows.Controls.Button
    
            Public Sub New()
    
                If System.ComponentModel.DesignerProperties.GetIsInDesignMode(Me) Then
                    Me.Content = "This button is in design mode."
                End If
            End Sub
        End Class
    End Namespace
    
    namespace CustomControlLibrary
    {
        public class ButtonWithDesignTime : System.Windows.Controls.Button
        {
            public ButtonWithDesignTime()
            {
                if (System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))
                {
                    this.Content = "This button is in design mode.";
                }
            }
        }
    }
    

参照

その他の技術情報

デザイン時の動作と実行時の動作

WPF デザイナーの機能拡張について

WPF デザイナーの機能拡張